我正在为一个网页制作Greasemonkey脚本。该页面有几个iframe。我已经发现它们是问题所在,但是我不知道如何解决这个问题。
首先,我的脚本创建了一个小的div框,并添加了一个按钮。通过按下按钮,脚本分析网页内容并在特定条件下调用alert。
Firefox中的Javascript控制台已经告诉我,因为我的脚本使用document.getElementByID查找顶层文档的body,而无法访问document,所以拒绝了访问。
这是一个容易避免的问题,因为脚本会在iframes中失败并卡住,但它仍然在主页面上继续,因为它确实可以访问document。
当我尝试在我的函数中使用alert时,问题就出现了。似乎iframes接管了我的脚本,并使用"Permission denied to access property 'alert'"杀死了它。
我应该如何告诉浏览器/脚本或其他东西,我只想让我的脚本在主文档上运行,而不想被iframes打扰呢?我安装了NO-script插件,允许主域并阻止次要域(在iframes中加载)和所有警报消息都正常。但是,我不能要求我的用户安装noscript启用/禁用特定域,而且我的脚本应该正常工作。我需要找到一个适用于所有iframes的解决方案。
希望这不会听起来令人困惑。
感谢您的任何帮助。
首先,我的脚本创建了一个小的div框,并添加了一个按钮。通过按下按钮,脚本分析网页内容并在特定条件下调用alert。
Firefox中的Javascript控制台已经告诉我,因为我的脚本使用document.getElementByID查找顶层文档的body,而无法访问document,所以拒绝了访问。
这是一个容易避免的问题,因为脚本会在iframes中失败并卡住,但它仍然在主页面上继续,因为它确实可以访问document。
当我尝试在我的函数中使用alert时,问题就出现了。似乎iframes接管了我的脚本,并使用"Permission denied to access property 'alert'"杀死了它。
我应该如何告诉浏览器/脚本或其他东西,我只想让我的脚本在主文档上运行,而不想被iframes打扰呢?我安装了NO-script插件,允许主域并阻止次要域(在iframes中加载)和所有警报消息都正常。但是,我不能要求我的用户安装noscript启用/禁用特定域,而且我的脚本应该正常工作。我需要找到一个适用于所有iframes的解决方案。
希望这不会听起来令人困惑。
感谢您的任何帮助。