Javascript 添加@grant值会打破我的Greasemonkey+;jQuery脚本?
当我添加@grant for GM_xmlhttpRequest时,我得到: 错误:访问属性“call”的权限被拒绝 在jQuery文件中。Javascript 添加@grant值会打破我的Greasemonkey+;jQuery脚本?,javascript,jquery,greasemonkey,Javascript,Jquery,Greasemonkey,当我添加@grant for GM_xmlhttpRequest时,我得到: 错误:访问属性“call”的权限被拒绝 在jQuery文件中。 如果我取消补助金,效果很好 // ==UserScript== // @name Dimi Test // @namespace Dimi // @include about:addons // @version 1 // @grant GM_xmlhttpRequest // @include http://
如果我取消补助金,效果很好
// ==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');
});
看
您不能再像那样调用目标页面的jQuery了
(请注意,在@grant none
模式下(GM 2的默认设置),unsafeWindow
与window
相同……但是,您不能使用GM
功能。)
@require
您自己的jQuery副本;它将不会与页面的冲突,并且将更快地加载以引导
不要将unsafeWindow
用于类似的操作(或者,如果您可以帮助的话,请不要使用它),而且对于Greasemonkey脚本来说,$(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>');
/==UserScript==
//@name-Dimi测试
//@Dimi
//@version 1
//@grant GM_xmlhttpRequest
//@include about:addons
//@include http://*.myDomain*/*
//@需要http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
//==/UserScript==
$(“body”).prepend('Hello World!');
然后,您可以将GM
函数与jQuery实例混合使用,而不会出现任何问题
注意:问题脚本中有
/@include about:addons
谢谢布罗克,我把问题浓缩了下来。非常感谢!我设法从那里开始。非常感谢!