2012-01-05 92 views
1

这里就是我想要做瓦特/ jQuery的:iframe中的iframe只显示一次iframe HTML有价值吗?

var content=$("#iframe01").contents().find("#content").html(); 

if(/*VARIABLE CONTENT RETURNS NULL*/){check again for its value) 

//BUT as soon as it has value, alert('content'); 

我不想使用.load或。就绪。我想我需要使用某种循环......我该怎么做?

+1

欢迎** **异步的奇妙世界!你不能那样做。 – SLaks 2012-01-05 20:31:41

+0

做一个定时器。 – 2012-01-05 20:32:38

+0

为什么你不想使用'.ready'(或'.load')?这不是说你应该怎么做? http://jsfiddle.net/PkdaE/ – 2012-01-05 20:58:05

回答

2

使用.setInterval()并继续检查,直到设置值。这会每秒检查一次(1000是毫秒)。你可以根据你的需要来调整它。

演示:http://jsfiddle.net/ThinkingStiff/QK5we/

脚本:

var timer = window.setInterval(function() { 

    var content = $('#iframe01').contents().find('#branding').html(); 

    if (content) { 
     window.clearInterval(timer); 
     alert(content); 
    }; 

}, 1000); 

HTML:

<iframe id="iframe01" src="http://fiddle.jshell.net/"></iframe> 
+0

另一种选择可能是让iFrame在加载后更改自己的URL参数。那么你只需检查iFrame src是否存在,例如'loaded = true' – buley 2012-01-05 23:39:39

+0

@editor酷。我不知道这是可能的。 – ThinkingStiff 2012-01-05 23:41:09