Javascript 防止jQuery append追加到iframe
我试图附加到$('body'),但有些网站在iFrame中使用完整的html页面,这意味着它-页面-有两个或更多的body标记,我尝试使用$('body').first(),但运气不好,有什么想法吗?html标记也是如此 编辑1:根据显示一些代码的请求,我将进一步解释,我正在创建一个chrome扩展,在当前页面上附加一个固定的div,当只有一个html/body标记时,一切正常,除了div附加到页面中的所有html/body标记之外,就像有人说的“给它一个ID”,我不能,这不是我的页面,我对服务器生成的DOM没有真正的控制权,我只能将其注入其中,这里是处理附加div的代码Javascript 防止jQuery append追加到iframe,javascript,jquery,iframe,Javascript,Jquery,Iframe,我试图附加到$('body'),但有些网站在iFrame中使用完整的html页面,这意味着它-页面-有两个或更多的body标记,我尝试使用$('body').first(),但运气不好,有什么想法吗?html标记也是如此 编辑1:根据显示一些代码的请求,我将进一步解释,我正在创建一个chrome扩展,在当前页面上附加一个固定的div,当只有一个html/body标记时,一切正常,除了div附加到页面中的所有html/body标记之外,就像有人说的“给它一个ID”,我不能,这不是我的页面,我对服务
formDiv = jQuery('<div/>', {
id : 'fform',
class :'_fform',
html : fhtml,
style : 'left:' + document.body.scrollLeft + ';top:' + document.body.scrollTop
})
$('html').first().append(formDiv);
formDiv=jQuery(“”{
id:“fform”,
类别:“'u fform'”,
html:fhtml,
样式:“左:”+document.body.scrollLeft+”;顶部:“+document.body.scrollTop”
})
$('html').first().append(formDiv);
编辑2:我怀疑这与chrome扩展清单中的“所有框架”有关。检查站点是否有框架,并采取相应措施
formDiv = jQuery('<div/>', {
id : 'fform',
'class' :'_fform',
html : fhtml,
style : 'left:' + document.body.scrollLeft + ';top:' + document.body.scrollTop
});
if (top === self) {
$('html').append(formDiv);
} else {
$(parent.document).append(formDiv);
}
formDiv=jQuery(“”{
id:“fform”,
“类”:“形式”,
html:fhtml,
样式:“左:”+document.body.scrollLeft+”;顶部:“+document.body.scrollTop”
});
如果(顶部===自身){
$('html').append(formDiv);
}否则{
$(parent.document).append(formDiv);
}
另一方面,您通常必须访问contextWindow才能附加到iFrame,因此只针对常规标记应该不会有问题。$('body')。first()应该可以工作,即使只有一个body。你能给我们看一些代码吗?
$('body')。追加('stuff here')
不会将任何内容附加到iframe,只会附加到当前文档中的任何
标记。请澄清这个问题,如果可能的话,在jsfiddle中构造一个测试用例。您以间接的方式回答了我,这是chrome清单文件中的“all_frames”选项,一旦我将其设置为默认值(false),现在事情就按预期工作了。