当我为GM_xmlhttpRequest添加@grant时,我得到:
错误:访问属性“call”的权限被拒绝
在jQuery文件中 如果我删除授权,它可以正常工作。
// ==UserScript==
// @name Dimi Test
// @namespace Dimi
// @include about:addons
// @version 1
// @grant GM_xmlhttpRequest
// @include http://*.myDomain.*/*
// ==/UserScript==
var $J = unsafeWindow.jQuery;
$J(unsafeWindow.document).ready(function(){
alert('Hello');
});
答案 0 :(得分:5)
请参阅"Error: Permission denied to access property 'handler'"。
您无法再像这样调用目标页面的jQuery。
(请注意,在@grant none
模式下(默认为GM 2),unsafeWindow
与window
相同...但是,您无法使用{ {1}}函数。)
GM_
你自己的jQuery副本;它不会与页面冲突,并且加载速度更快,无法启动。
不要将@require
用于此类事情(或者根本不用,如果可以帮助的话),Greasemonkey脚本几乎不需要unsafeWindow
。
您的(新)示例脚本只是:
$(document).ready()
然后你可以将// ==UserScript==
// @name Dimi Test
// @namespace Dimi
// @version 1
// @grant GM_xmlhttpRequest
// @include about:addons
// @include http://*.myDomain.*/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// ==/UserScript==
$("body").prepend ('<h1>Hello World!</h1>');
函数和你的jQuery实例混合起来没有任何问题。
注意:问题脚本有GM_
Greasemonkey scripts will not work on the about:addons
page, by design.