如何解决“权限被拒绝访问属性'提醒'”?
有一个网页我正在制作一个greasmonkey脚本。该页面有几个iframe。我发现他们是问题,但我不知道如何解决这个问题。如何解决“权限被拒绝访问属性'提醒'”?
首先,我的脚本用按钮创建一个小的div框。通过按下脚本分析网页内容并在特定条件下致电alert
。在Firefox
的Javascript控制台已经喊,我认为访问是因为我的剧本是用document.getElementByID
找到顶部文档的尸体,其中DIV盒子被添加到拒绝document
。
这是一个很容易避免的问题,因为脚本失败并陷入iframe中,但它仍然继续在主页上,因为它可以访问document
。
当我尝试在我的函数中使用警报时,问题出现了。好像iframes接管我的脚本并用Permission denied to access property 'alert'
杀死它。
我如何告诉浏览器/脚本或其他什么,我只希望我的脚本在主文档上运行,而且我不想被iframe困扰?我安装了NO-script插件,允许主域名并阻止二级域(加载内部框架)和所有警报消息都正常。但是,我不能要求我的用户安装noscript启用/禁用特定的域,我的脚本应该工作正常。我需要找到适用于所有启用的iframe的解决方案。
希望它没有听起来令人困惑。
谢谢你的帮助。
RE:
我如何告诉浏览器/脚本或什么的,我只希望我的脚本在主文档运行,我不想通过I帧来打扰我没有安装脚本插件? ,允许主域名并阻止二级域名(在内部框架中加载)并且所有警报消息都正常。
首先,调整您的include和exclude指令,以尽可能忽略iframe。 EG:
// @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;
将从I帧上停止运行的通用脚本。
谢谢,足以添加2行代码,它都运行良好:) – user1651105 2011-05-02 09:20:10
不客气,乐意效劳。 – 2011-05-02 09:21:47
有些代码会有帮助 – user123444555621 2011-04-30 11:25:41