如何在包含iframe的页面中仅附加到主体标记?

时间:2015-08-31 20:30:57

标签: 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>'
);

只要页面上只有一个body标签,它就可以正常工作,但是当网页上有iframe时会出现问题。它附加到嵌套在iframe中的所有主体。

我尝试过很多jQuery选择器而没有成功。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

通常,在元数据块中使用@noframesDoc 可阻止脚本在iframe中运行。

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

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

如果不起作用,会提供My very simple Greasemonkey script is not running?中指定的详细信息。
(请注意,您应始终提供这些详细信息。)

答案 1 :(得分:0)

您可以执行$("<div id="btn" ...>SHOW</div>").insertAfter('body');