Javascript GM_setClipboard(和其他GM函数)在Firefox中给出错误,但在Chrome/Tampermonkey中没有?
我在Firefox中工作,试图创建一个函数,当我按下Shift+*(Numpad)时,它会复制链接的文本 该代码通常在Chrome Tampermonkey中工作,但由于某些原因,它在Firefox中没有任何作用。Javascript GM_setClipboard(和其他GM函数)在Firefox中给出错误,但在Chrome/Tampermonkey中没有?,javascript,jquery,greasemonkey,tampermonkey,Javascript,Jquery,Greasemonkey,Tampermonkey,我在Firefox中工作,试图创建一个函数,当我按下Shift+*(Numpad)时,它会复制链接的文本 该代码通常在Chrome Tampermonkey中工作,但由于某些原因,它在Firefox中没有任何作用。 控制台中报告了以下错误: “引用错误:未定义GM_setClipboard” 这是我的代码: document.addEventListener( "keydown", function(i) { var selectLink = $('a').eq(8); // The l
控制台中报告了以下错误: “引用错误:未定义GM_setClipboard” 这是我的代码:
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
}
});
使用GM
功能。然而,Tampermonkey仍然会进行一些自动检测(潜在的安全漏洞)
因此:
/@grant GM_setClipboard
@require
djquery
// ==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
}
} );
这是个不错的选择
一个非常常见的用例是从另一个元素复制内容。可以通过在触发器元素中添加数据剪贴板目标属性来实现这一点
是否有任何错误信息或类似信息?实际和预期的行为是什么?是的,对不起,我刚刚在控制台中找到了如何从Greasemonkey检索错误消息,错误是“ReferenceError:GM_setClipboard未定义”。预期的行为是,当我按下Shift+*时,它将复制所选链接的文本。它的
GM.setClipboard
现在(
不是
)<代码>@grant仍然是必需的,并且必须更正。在Firefox 68.3(自2019年12月起)中使用油脂猴4.9进行测试。