Javascript 如何在带有iframe的页面中仅附加到主体标记?

Javascript 如何在带有iframe的页面中仅附加到主体标记?,javascript,jquery,dom,iframe,greasemonkey,Javascript,Jquery,Dom,Iframe,Greasemonkey,我正在开发一个Greasemonkey脚本,在body标记后面添加一个div,下面是jQuery: $("body:first").append ( '<div id="btn" style="width:50px;display:block">SHOW</div> <div id="gmPopupContainer" style="display:none">my text here</div>' ); $(“正文:第一”).append

我正在开发一个Greasemonkey脚本,在body标记后面添加一个div,下面是jQuery:

$("body:first").append (
  '<div id="btn" style="width:50px;display:block">SHOW</div>  <div id="gmPopupContainer" style="display:none">my text here</div>'
);
$(“正文:第一”).append(
'在此处显示我的文本'
);
只要页面上只有一个body标签,它就可以正常工作,但是当网页上有iframe时,就会出现问题。它附加到iFrame中嵌套的所有实体

我尝试了很多jQuery选择器,但都没有成功。正确的方法是什么?

您可以执行
$(“SHOW”).insertAfter('body')

通常,在元数据块中使用来停止脚本在iFrame中运行

或者,在这种情况下,您也可以使用以下内容:

var topmostFramesMainBody = $(top.document.body).first ();

如果不起作用,请提供中指定的详细信息。

(请注意,您应该始终提供这些详细信息。)

它也不起作用,因为它将在网页上找到所有正文标记(包括iframes中的标记)后插入,我甚至尝试了$('document.body')。我需要引用主文档的主体并放弃所有restOK,给主体一个ID:
,然后执行
$(“SHOW”).insertAfter('body.mainBody')由于我正在编写一个跨站点的greasemonkey脚本,所以我无法为主体提供id,因此我无法控制网页。