2011-12-24 309 views
1

我使用的是以下行揭开序幕,它加载一个iframe main.php:JQUERY - 等待window.location.href来完成

window.location.href = '/main.php?token='+obj.token; 

我需要等待的iframe完成加载,因此$ _GET令牌可以被获得。

这个我想运行下面一行的命令行删除标记后:

window.history.pushState("object or string", "Title", "/new-url"); 

目前pushState的始终闪光迅速然后令牌丢失。 有没有办法延迟这个,直到iframe完全加载? 不想使用计时器,因为它有时可能无法工作。

THX

回答

2

可以绑定到ready事件的iframe,像这样:

$("#frametest").ready(function(){alert("loaded");}); 

其中frametest是你的iframe的ID。

下面是这个的jsfiddle: http://jsfiddle.net/fQB2H/1/

0

你的iframe中可以使用的onload在主体部分是这样的:

BODY的onload = “ON_LOAD();”>

然后,在页面底部创建一些js代码将与你的主窗口进行通信,或者在页面加载时运行一些代码。

<SCRIPT type="text/javascript"> 

    function on_load() { 

     parent.functionName(); 

    } 
-1

您可以赶上load事件,发送到一个元素时,它和所有的子元素已经被完全加载,以这样的方式

$('#myiframe').load(function() { 
    // Handler for .load() called. 
}); 
+0

这个工作在哪些浏览器中?不在Chrome中 – 2011-12-24 07:56:31

+0

@Pencho Ilchev你很棒,我愚蠢的错误 – macgyver 2011-12-24 09:06:17