Скрипт работает в 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 ответ

Решение

Код вопроса не должен работать ни в одном браузере, и вы должны увидеть сообщения об ошибках в консолях.

Проблемы:

  1. document.getElementById('survey16') не имеет .hide() метод. Это функция jQuery.
  2. removeSurvey() должно быть:

    function removeSurvey (jNode) {
        jNode.hide ();  //-- .hide is a jQuery function.
    }
    
  3. ЗА ИСКЛЮЧЕНИЕМ, существует несоответствие между waitForKeyElements позвонить и removeSurvey,
    В первом вы ищете div с классом survey16, но во втором вы пытаетесь удалить элемент с идентификатором survey16, Что он?
  4. Как правило, не используйте @grant none при использовании @require это обычно приводит к конфликтам страниц и сбоям. JQuery особенно плохо.
  5. Также, @grant none работает немного по-разному в обоих браузерах. Когда используешь @require, уточнить @grant GM_addStyle за исключением особых и редких случаев.
Другие вопросы по тегам