脚本在Greasemonkey中运行,但是Tampermonkey没有任何反应?

时间:2016-11-29 16:15:33

标签: javascript google-chrome greasemonkey tampermonkey

以下脚本适用于Firefox / Greasemonkey,但Chrome / Tampermonkey中没有任何操作。

任何人都可以理解为什么它在Tampermonkey中无效?

// ==UserScript==
// @name        Example
// @namespace   Example.com
// @description Example.com
// @include     https://example.com/*
// @include     http://example.com/*
// @version     1
// @grant       none
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @require https://greasyfork.org/scripts/5392-waitforkeyelements/code/WaitForKeyElements.js?version=115012
// ==/UserScript==

window.onload = function(){
  document.getElementById('close-cookies').click();
};

waitForKeyElements('div.survey16', removeSurvey);

function removeSurvey() {
  document.getElementById('survey16').hide();
}

$('.chat-bot').hide();

1 个答案:

答案 0 :(得分:2)

问题代码不应在任何一个浏览器中都有效,您应该在控制台中看到错误消息。

问题:

  1. document.getElementById('survey16') does not have a .hide() method。这是一个jQuery函数。
  2. removeSurvey()应该是:

    function removeSurvey (jNode) {
        jNode.hide ();  //-- .hide is a jQuery function.
    }
    
  3. 除了waitForKeyElements来电与removeSurvey之间存在不匹配 首先,您要搜索 class survey16的div,但在第二步中,您尝试删除 id survey16的元素。这是什么?
  4. 作为一般规则,在使用@grant none时不要使用@require,这通常会导致页面冲突和崩溃。 jQuery is especially bad.
  5. 此外,@grant none在两种浏览器中的功能略有不同。使用@require时,请指定@grant GM_addStyle,但特殊情况除外。