Userscript在内部#document元素
Userscript in inner #document elements
我试图写一个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;
}
当在作为框架集的页面上运行时,这可能会出现问题,但这不再是一种非常常见的做法,所以如果您发现这是一个问题,我会感到惊讶。
相关文章:
- 如何使用 document.querySelectorAll 遍历选定的元素
- document.querySelectorAll() 函数不适用于所有元素
- 如何在不接触某些元素的情况下附加document.click事件
- 我应该如何引用document.getComputedStyle中的特定元素
- document.getElementsByClassName不会影响元素
- document.getelementbyid 在输入元素的点击中
- 直接在元素上执行函数,而不是 document.getElementbyId 的结果
- JavaScript 无法正确显示 document.Forms 元素
- document.getElementById 适用于一个表单元素,但不适用于另一个表单元素
- document.getElementsByClassName() 数组中元素的顺序
- document.createElement();是否有我可以创建的元素列表
- 如何使用'document.querySelector()'访问ExtJS元素
- 如何使用 document.write 将变量值追加到元素
- document.getElementById 是否返回一个实时 dom 元素
- document.getElementById 找不到 qUnit DOM 元素
- Jquery 不适用于在 document.ready 之后创建的元素
- $(document).ready() 中的函数找不到 DOM 的主体元素
- 将 元素放在 document.write 中
- document.getElementById 返回已知元素的 null - why
- 如何获取在使用 document.execCommand 突出显示文本时创建的元素