防止jQuery追加附加到iframe

时间:2012-12-18 08:27:39

标签: javascript jquery iframe

我试图附加到$('body'),但有些网站在iframe中使用完整的html页面,这意味着它 - 页面 - 有两个或更多身体标签,我试图使用$('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);

编辑2 :我怀疑它现在与Chrome扩展程序清单中的“all_frames”有关。

1 个答案:

答案 0 :(得分:1)

检查网站是否有框架,并采取相应措施?

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);
}

另一方面,您通常必须访问contextWindow才能附加到iFrame,因此仅定位常规标记应该不是问题。