我遇到了一个奇怪的问题。我有一个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没有加载。火虫中也没有出现错误。
答案 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。