gpt4 book ai didi

javascript - 添加 @grant 值会破坏我的 Greasemonkey+jQuery 脚本吗?

转载 作者:搜寻专家 更新时间:2023-11-01 04:08:51 24 4
gpt4 key购买 nike

当我为 GM_xmlhttpRequest 添加 @grant 时,我得到:

Error: Permission denied to access property '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');
});

最佳答案

参见 "Error: Permission denied to access property 'handler'" .

您不能再像那样调用目标页面的 jQuery。

(请注意,在 @grant none 模式(GM 2 的默认模式)下,unsafeWindowwindow 相同...但是,你不能使用 GM_ 函数。)


@require 您自己的 jQuery 副本;它不会与页面冲突,并且加载速度更快,可以启动。

不要对这样的事情使用 unsafeWindow(或者根本不使用,如果你能帮助的话),并且 $(document).ready() 也几乎从不Greasemonkey 脚本需要。

您的(新)示例脚本只是:

// ==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>');

然后您可以毫无问题地混合使用 GM_ 函数和您的 jQuery 实例。



注意:问题脚本有//@include about:addons
Greasemonkey scripts will not work on the about:addons page, by design.

关于javascript - 添加 @grant 值会破坏我的 Greasemonkey+jQuery 脚本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25532475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com