【问题标题】:Java class gets loaded even if iframe is not called by clicking the link. Why?即使没有通过单击链接调用 iframe,也会加载 Java 类。为什么?
【发布时间】:2013-03-19 21:20:46
【问题描述】:

我遇到了一个奇怪的问题。我有一个 jsp ,它正在调用 iframe 。 iframe 从 java 中加载数据。

现在渲染 iframe 我正在使用自定义 control-modal.js

现在我的 iframe 是在 li 标签之后编码的:

<li>
<a id="modalLink"  href="#myModal">Set up my Modal</a>
</li>
<div id="myModal" >
<div class="modalsubcol">
<p class="close"><a href="#"><img src="/.../close-button.gif" alt="Close"/></a></p>
<iframe id="modal-frame"style="display:none;" height="430" 
width="675" src="<%= getTheModal()%>"></iframe>
</div>
</div>

我在我的 jsp 的头部调用模态,如下所示:

<script type="text/javascript">
window.onload=function modalOverride(){
var myModal;
$('modal-frame').style.display ='block';
myModal = new Control.Modal($('modalLink'), {
afterOpen : function(){$$('.close a').invoke('observe','click',function(e){Control.Modal.close(); Event.stop(e);});},
opacity: 0.3,
width: 675,
fade: true,
fadeDuration: 0.1,
autoOpenIfLinked: false
});
}
</script>

现在链接:设置我的模态是包含许多链接的页面的一部分。当我打开该页面时,也会调用从模态渲染数据的 java 类。但这只有在我点击 Set up my Modal 链接时才会发生。

在有人告诉我之前,这个问题不是由于

  window.onload

事件,我已经使用它,否则当我单击前面提到的链接时,模式不会被加载。我也尝试过删除 window.onload 事件。如果我这样做,java 类仍然会被加载,现在我的 iframe 没有被加载。 fire bug 也没有出现错误。

【问题讨论】:

    标签: javascript jsp iframe


    【解决方案1】:

    当你把它放到页面上时:

    <iframe id="modal-frame"style="display:none;" height="430" width="675" src="<%= getTheModal()%>"></iframe>
    

    无论是否设置了 display: none css 属性,都会加载 iframe 的源代码。

    另外请注意,JSP 不会“调用” iframe,它们只是在 HTTP 响应中呈现 iframe 标签,浏览器会解释 iframe 并呈现 iframe src

    如果您希望显示/隐藏 iframe,您可以使用 JQuery:

    $('.modal-frame').toggle();
    

    如果您确实希望仅在单击链接时包含其他页面,则需要在单击链接时使用 AJAX 发出请求或使用 Javascript 动态加载 iframe。

    【讨论】:

    • 那我该怎么办?我如何在不点击链接的情况下至少停止加载 java 类?
    • 执行此操作的标准方法是使用 AJAX 请求:api.jquery.com/jQuery.ajax 您也可以在点击时动态加载 iframe。
    • 你能分享一些信息/网址,它显示了如何通过 Ajax 或 javascript 严格点击加载 iframe。
    猜你喜欢
    • 2017-08-19
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 2019-11-29
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    相关资源
    最近更新 更多