我正在使用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但它不适合我...
谢谢大家=)
答案 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');
});