Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止jQuery append追加到iframe_Javascript_Jquery_Iframe - Fatal编程技术网

Javascript 防止jQuery append追加到iframe

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”,我不能,这不是我的页面,我对服务

我试图附加到$('body'),但有些网站在iFrame中使用完整的html页面,这意味着它-页面-有两个或更多的body标记,我尝试使用$('body').first(),但运气不好,有什么想法吗?html标记也是如此

编辑1:根据显示一些代码的请求,我将进一步解释,我正在创建一个chrome扩展,在当前页面上附加一个固定的div,当只有一个html/body标记时,一切正常,除了div附加到页面中的所有html/body标记之外,就像有人说的“给它一个ID”,我不能,这不是我的页面,我对服务器生成的DOM没有真正的控制权,我只能将其注入其中,这里是处理附加div的代码

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),现在事情就按预期工作了。