Google chrome extension Jquery:Get Body不是iframe的后代

Google chrome extension Jquery:Get Body不是iframe的后代,google-chrome-extension,jquery-selectors,code-injection,Google Chrome Extension,Jquery Selectors,Code Injection,我对我的一个项目有意见 我正在开发一个将html代码注入页面的chrome扩展,特别是我正在注入一个由浏览器动作触发的引导模式 我目前面临的问题是,负责在主体末尾注入模态的代码也会将其注入任何iframe中 这是我正在使用的代码: $('html > body:not(iframe body)').append(container); 遗憾的是,这不会导致选择预期的主体元素。由于代码是注入的,并且我无法控制源文档,因此我不能依赖.first()或.last()作为解决方法 对此问题的任何

我对我的一个项目有意见

我正在开发一个将html代码注入页面的chrome扩展,特别是我正在注入一个由浏览器动作触发的引导模式

我目前面临的问题是,负责在
主体
末尾注入模态的代码也会将其注入任何
iframe

这是我正在使用的代码:

$('html > body:not(iframe body)').append(container);
遗憾的是,这不会导致选择预期的主体元素。由于代码是注入的,并且我无法控制源文档,因此我不能依赖
.first()
.last()
作为解决方法

对此问题的任何帮助都将不胜感激:)

编辑:
通常,有问题的
iFrame
位于
#document
类型的元素中(如果我有必要的声誉,我会发布它的图像)

尝试使用
过滤器

$('body').filter(function() {
    return !($(this).closest('iframe').length > 0);
}).append(container);

如myrsnipe所述,如果希望脚本仅注入顶部框架,则必须在清单中设置
“所有框架”:false
。我写这篇文章是为了让它作为一个答案出现,而不仅仅是在评论中。

@myrsnipe。。很高兴能帮上忙:)看来我接受这个答案有点太仓促了,这毕竟不可靠。这似乎取决于
iframe
的内容如何布局。我仍然很感激@SushanthI的建议,我已经接受了这个答案,因为它毕竟回答了我的问题。我真正的问题是我没有在清单中设置
“all_frames”:false
标志,从而将我的所有代码注入iframes,而不仅仅是html