内部 #document 元素中的用户脚本

Userscript in inner #document elements

我正在尝试编写一个 Tampermonkey 脚本将 HTML 附加到正文,但由于某种原因,HTML 对话框出现在广告中。 Google Chrome 的检查元素显示:

#document
<!doctype html>
<html>
<body> <!-- Another Body Tag -->
...
</body>
</html>

如您所见,还有另一个 body 标签,因此对话框也出现在其中。 有没有办法只定位主 <body> 标签,而不是 #document 标签内的那些?

可能发生的情况是,因为您的 @match 非常贪婪,所以它 运行 在页面上的所有 HTML 文档上。如果你只想在根页面上 运行 ,你可以检查 window 是否是 "top" window.

if (window !== window.top) { // not the root, return early
    return;
}

当 运行 在框架集的页面上时,这可能会出现问题,但这不再是一种非常普遍的做法,所以如果您发现这是一个问题,我会感到惊讶。