我在运行一个简单的 GreaseMonkey 脚本来清理 DuckDuckGo.com 上的搜索结果时遇到问题。下面的代码只是从结果中删除“图像”和“视频”按钮。
// ==UserScript==
// @name Relevance
// @include http://duckduckgo.com/*
// @include https://duckduckgo.com/*
// @version 1
// @grant none
// ==/UserScript==
function Relevant(){
var killIt=["zcm__link js-zci-link js-zci-link--images ", "zcm__link js-zci-link js-zci-link--videos "];
var el = document.getElementsByTagName("a");
for (i = 0; i < el.length; i++)
{
for (j=0;j<killIt.length; j++)
{
if (el[i].className==killIt[j])
{
el[i].parentNode.removeChild(el[i]);
}
}
}
};
$(window).load (Relevant());
该代码在控制台中输入时可以工作,但不能作为 Greasemonkey 脚本工作。我尝试调整找到的解决方案 here (即使用 $(window).load (Relevant());
),但我仍然遇到麻烦。这是我第一次尝试制作自己的用户脚本,因此非常感谢任何帮助。
最佳答案
正如@charlietfl所说,$(window).load (Relevant());
立即调用Relevant,它应该更改为$(Relevant)
。
如果有效,请尝试以下操作:https://wiki.greasespot.net/Metadata_Block#.40run-at
如果这不起作用,请尝试使用setTimeout(Relevant,3000)
;
通常情况下,在控制台中工作的代码在greasemonkey中不起作用,因为greasemonkey脚本运行时可能无法渲染dom。
关于javascript - 我的 Greasemonkey 脚本在控制台中输入时有效,但在 Firefox 中尝试使用时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43443323/