如何在 Greasemonkey 或 Tampermonkey 中排除 iframe?

发布于 2024-08-06 12:48:08 字数 245 浏览 7 评论 0原文

我为一个网站创建了一个 Greasemonkey 脚本。该脚本的作用是在页面末尾添加一个 div。

document.body.insertBefore(myDiv, document.body.firstChild);

但是现在该网站为 google-ads 添加了一个 iframe,结果我的 div 也出现在 iframe 中,这不是我想要的。

如何阻止脚本影响 iframe?

I have created a Greasemonkey script for a website. What the script does is adding a div at the end of the page.

document.body.insertBefore(myDiv, document.body.firstChild);

But now the site adds an iframe for google-ads, as a result my div appears in the iframe too, which is not what I want.

How can I stop the script affecting iframes?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

锦爱 2024-08-13 12:48:08

我将其放在脚本的顶部以避免在框架或 iframe 上运行:

if (window.top != window.self)  //don't run on frames or iframes
    return;

I put this at the top of my scripts to avoid running on frames or iframes:

if (window.top != window.self)  //don't run on frames or iframes
    return;
东走西顾 2024-08-13 12:48:08

Greasemonkey 现在支持@noframes 指令(长期受 Tampermonkey 和 Scriptish 支持)。
使用它可以更干净地阻止 iframe 中的操作。


不幸的是,npdoty 的回答现在将在 Firefox 浏览器控制台中触发警告:

警告:在函数外部使用 return 已被弃用,并且可能会在 Greasemonkey 的未来版本中导致失败。

Greasemonkey now supports the @noframes directive (long supported by Tampermonkey and Scriptish).
Use that for a cleaner way to block operation in iframes.


Unfortunately, npdoty's answer will now trigger a warning in Firefox's browser console:

Warning: use of return outside of functions is deprecated and may cause failures in future versions of Greasemonkey.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文