即使没有通过单击链接调用iframe,Java类也会被加载。为什么?

时间:2013-03-19 13:19:01

标签: javascript jsp iframe

我遇到了一个奇怪的问题。我有一个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类。但这必须在我点击设置我的模态链接时发生。

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

  window.onload

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

1 个答案:

答案 0 :(得分:0)

当您将其放在页面上时:

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

无论你是否拥有display:none css属性集,都会加载iframe的源代码。

另请注意,JSP不会调用&#34; iframe,他们只是在HTTP响应中呈现iframe标记,浏览器比解释iframe并呈现iframe src

如果您希望显示/隐藏iframe,您可以使用JQuery执行此操作:

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

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