GM_openInTab:拒绝访问属性的权限

时间:2015-02-20 19:11:36

标签: firefox greasemonkey

我目前正在尝试打开一个新的空白窗口并动态插入一些内容。

问题是我尝试的所有内容都会引发Permission denied to access property '...'

我已经阅读了很多关于这个问题的相关问题,但大多数问题都涉及同源问题。

我尝试使用以下网址:

  • "" (空字符串)
  • "#"
  • "关于:空白"

前两个选项是绕过同源问题,但第三个选项是完美的。无论如何,他们没有工作。

标签打开很好,但我无法用它做任何事情。

var win = GM_openInTab("ANY OPTION ABOVE");

win.document; // throws 'Permission denied to access property "document"'
win.addEventListener; // throws 'Permission denied to access property "addEventListener"'
$(win); // throws Permission denied to access property 'nodeType'

and so on...

我还没有在FX 35.0.1和GM 2.3之外的任何其他版本中测试它,所以我不确定它是否与Greasemonkey 2.0的发布以及所有特权沙箱有关东西。

我也试过window.open ......同样的问题,但这是可以理解的。我只是认为GM_openInTab是解决方案。

我所知道的是,我不知道如何管理标签。请帮助!

Ps。:是的,我在元数据块中有@grant GM_openInTab

1 个答案:

答案 0 :(得分:0)

将新页面添加到@include,然后执行类似

的操作
// @include     http://stackoverflow.com
// @grant       GM_addStyle
// ==/UserScript==

if(window.location==='http://stackoverflow.com'){
//do whatever
}

这样就没有跨域问题,因为您实际上是在相关页面上运行脚本。

那应该有效。