And*_*ott 5 iframe jquery jquery-ui
我有一个jQuery对话框,其内容由iframe定义.在显示对话框之前,此iframe的内容是不可见的.在IE中,这个内容及其相关的javascript正在执行,因此当显示对话框时,很明显javascript已经完成了所有的加载工作.但是在像Firefox和Chrome这样的非IE浏览器中,这个iframe再次在对话框可见之前执行其javascript,但是当显示对话框时显然会重新执行它.
因为这是一个相当昂贵的iframe(使用ajax调用执行大量的javascript),我不希望浏览器支付初始化两次的费用.事实上,我可能会说我想延迟初始化它,直到对话框实际出现.但是它是否在它出现之前初始化然后保留初始化(正如IE正在做的那样)或它只是延迟初始化直到对话框可见,我可以解决.
我不能满足的是我现在看到的,非IE浏览器初始化两次,第一次是完全浪费,因为它们在对话框出现时重新初始化.
我指的页面:http://openidux.dotnetopenauth.net/.您可以通过单击右上角的"登录"链接来重现行为.
谢谢.
我最初将iframe.src属性设置为"about:blank",并且仅在对话框实际弹出时设置源.然后,为了避免在对话框隐藏时重新加载(愚蠢,我知道),我将其重新设置为about:blank.
$(document).ready(function() {
$("#loginDialog").dialog({
close: function(event, ui) {
// Clear the URL so Chrome/Firefox don't refresh the iframe when it's hidden.
iframe.src = "about:blank";
},
open: function(event, ui) {
iframe.src = loginContent;
},
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5253 次 |
| 最近记录: |