gpt4 book ai didi

javascript - 如何解决 "Permission denied to access property ' 警报'”?

转载 作者:行者123 更新时间:2023-11-29 09:58:54 29 4
gpt4 key购买 nike

我正在为一个网页制作 greasmonkey 脚本。这个页面有几个 iframe。我发现它们是问题所在,但我不知道如何解决这个问题。

首先,我的脚本创建了一个带有按钮的小 div 框。通过按下按钮脚本分析网页内容并在特定条件下调用 alert

Firefox 中的 Javascript 控制台已经向我大喊 document 的访问被拒绝,因为我的脚本正在使用 document.getElementByID 来查找顶部文档的正文,其中 div 框正在附加到。

这是一个很容易避免的问题,因为脚本失败并卡在 iframe 中,但它仍然在主页上继续,因为它确实提供了对 document 的访问。

当我尝试在我的函数中使用警报时出现问题。似乎 iframe 接管了我的脚本并使用 Permission denied to access property 'alert' 杀死它。

我如何告诉浏览器/脚本或其他什么,我只希望我的脚本在主文档上运行并且我不想被 iframe 打扰?我安装了 NO-script 插件,允许主域并阻止辅助域域(在 iframe 中加载)并且所有警报消息都正常。但是,我不能要求我的用户安装 noscript 启用/禁用特定域,我的脚本应该可以正常工作。我需要找到适用于所有启用的 iframe 的解决方案。

希望这听起来不会令人困惑。

感谢您的帮助。

最佳答案

回复:

How do i tell browser/script or whatever, that i only want my script to run on main document and i do not want to be bothered by iframes?I installed NO-script addon, allowed the primary domain and blocked the secondary domain (that loads inside iframes) and all the alert messages go normal.

首先,调整您的 include 和 exclude 指令以尽可能地忽略 iframe。例如:

// @include  http://example.com/normal/*
// @include http://example.com/extra/*
// @exclude http://example.com/extra/in_iframe/*


接下来,将这两行作为第一行代码添加到 Metadata Block 之后:

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

这将阻止 GM 脚本在 iframe 上运行。

关于javascript - 如何解决 "Permission denied to access property ' 警报'”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5840928/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com