我目前正在尝试打开一个新的空白窗口并动态插入一些内容。
问题是我尝试的所有内容都会引发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
。
答案 0 :(得分:0)
将新页面添加到@include
,然后执行类似
// @include http://stackoverflow.com
// @grant GM_addStyle
// ==/UserScript==
if(window.location==='http://stackoverflow.com'){
//do whatever
}
这样就没有跨域问题,因为您实际上是在相关页面上运行脚本。
那应该有效。