我的Greasemonkey脚本在控制台中输入时有效,但在我尝试在Firefox中使用时则不行

时间:2017-04-16 23:40:21

标签: javascript html greasemonkey

我无法运行我在DuckDuckGo.com上清理搜索结果的简单GreaseMonkey脚本。下面的代码只是从结果中删除“图像”和“视频”按钮。

// ==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());),但我仍遇到问题。这是我第一次尝试制作自己的用户脚本,所以非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

正如@charlietfl所说,$(window).load (Relevant());立即调用相关,它应该更改为$(Relevant)

如果有效,请尝试:https://wiki.greasespot.net/Metadata_Block#.40run-at

如果这不起作用,请尝试使用setTimeout(Relevant,3000);

通常,代码在控制台中工作并不适用于greasemonkey,因为当greasemonkey脚本运行时,doms可能无法呈现。