Userscript在内部#document元素

Userscript in inner #document elements

本文关键字:元素 #document 在内部 Userscript      更新时间:2023-09-26

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

#document
<!doctype html>
<html>
<body> <!-- Another Body Tag -->
...
</body>
</html>
如您所见,还有另一个body标签,因此对话框也出现在其中。是否有一种方法,只针对主要的<body>标签,而不是那些在#document标签?

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

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

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