我正在Firefox中工作,并尝试创建一个在按Shift + *(数字键)时将复制链接文本的功能。
该代码通常可以在Chrome Tampermonkey中使用,但是由于某些原因,它在Firefox中什么也不做。
控制台中报告了以下错误:
这是我的代码:
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仍会进行一些自动检测(潜在的安全漏洞)。
所以:
// @grant GM_setClipboard
。@require
和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
}
} );