gpt4 book ai didi

javascript - GM_setClipboard(和其他 GM 函数)在 Firefox 中给出错误,但在 Chrome/Tampermonkey 中没有给出错误?

转载 作者:数据小太阳 更新时间:2023-10-29 06:05:39 26 4
gpt4 key购买 nike

我在 Firefox 中工作并尝试创建一个函数,当我按下 Shift+* (Numpad) 时将复制链接的文本。

代码通常在 Chrome Tampermonkey 中工作,但由于某种原因它在 Firefox 中什么都不做。
控制台报如下错误:

"ReferenceError: GM_setClipboard is not defined"

这是我的代码:

document.addEventListener( "keydown", function(i) {
var selectLink = $('a').eq(8); // The link by index
var targetLink = selectLink.text(); // The link text

if (i.keyCode === 106 && i.shiftKey) // Shift+Num*
{
GM_setClipboard(targetLink); // Copy to clipboard
}
});

最佳答案

Greasemonkey requires explicit @grant statements使用 GM_ 函数。而 Tampermonkey 仍然会进行一些自动检测(潜在的安全漏洞)。

所以:

  1. 您需要在 metadata block 中指定 //@grant GM_setClipboard .

  2. 但是,这会重新打开沙箱(一件好事),因此您还需要确保您已经@required jQuery。

这个脚本在 Greasemonkey 和 Tampermonkey 中都有效:

// ==UserScript==
// @name _YOUR_SCRIPT_NAME
// @match http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant GM.setClipboard
// ==/UserScript==

document.addEventListener ( "keydown", function (i) {
var selectLink = $('a').eq (8); // The link by index
var targetLink = selectLink.text ().trim (); // The link text

if (i.keyCode === 106 && i.shiftKey) // Shift+Num*
{
GM.setClipboard (targetLink); // Copy to clipboard
}
} );

关于javascript - GM_setClipboard(和其他 GM 函数)在 Firefox 中给出错误,但在 Chrome/Tampermonkey 中没有给出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35576512/

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