如何知道更改内容后iFrame的DOM何时再次准备好?

时间:2011-10-12 15:33:54

标签: javascript jquery firefox-addon

我正在使用jquery编写一个firefox插件。我在页面中添加了一个iFrame,并用另一个页面填充(允许相同的orign策略)。

$('#globalContainer').append('<iframe id="reusable_iframe" src="" width="90%" height="400" name="reusable_iframe"></iframe>');
//....
$('#reusable_iframe').attr('src', link);
//...
var link = $('#reusable_iframe').contents().find(HTMLclass).eq(position).find(searchBy).attr('href');

问题是,在访问之前,iFrame中的DOM没有完成加载。但是,当我添加警报时,它的工作没有任何问题:

$('#globalContainer').append('<iframe id="reusable_iframe" src="" width="90%" height="400" name="reusable_iframe"></iframe>');
//....
$('#reusable_iframe').attr('src', link);
//...
alert("wait a sec"); //<-------------------------
var link = $('#reusable_iframe').contents().find(HTMLclass).eq(position).find(searchBy).attr('href');

此问题与我的ajax问题非常相似,该问题也适用于警报。 how to know when the DOM is ready again after adding a node from ajax我还没有找到解决这两个问题的方法......

我尝试了这个:jQuery .ready in a dynamically inserted iframe但它不适合我...

谢谢大家=)

1 个答案:

答案 0 :(得分:1)

$('#globalContainer').append('<iframe id="reusable_iframe" src="" width="90%" height="400" name="reusable_iframe"></iframe>');
//....
$('#reusable_iframe').attr('src', link);

$('#reusable_iframe').load(function(){
    var link = $('#reusable_iframe').contents().find(HTMLclass).eq(position).find(searchBy).attr('href');

});