2016-11-29 2 views
1

Нижеприведенный скрипт работает в Firefox/Greasemonkey, но ничего не происходит в Chrome/Tampermonkey.Сценарий работает в Greasemonkey, но ничего не происходит в 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(); 
+0

если вы положили какой-нибудь 'console.log', то он зашел в консоль? что, если вы удалите некоторые '@ require' –

ответ

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.
    В первом вы ищете DIV с классом survey16, а во втором вы пытаетесь удалить элемент с идентификатором survey16. Что он?
  4. Как правило, не используйте @grant none, когда также используется @require, это обычно приводит к конфликтам страниц и сбоям. jQuery is especially bad.
  5. Кроме того, @grant none функционирует несколько по-разному в обоих браузерах. При использовании @require укажите @grant GM_addStyle, за исключением особых и редких случаев.
+0

Awesome! Вы знаете способ отладки, который содержит 'jNode'? Не думаю, что для этого вы используете 'console.log'? –

+1

jNode всегда является стандартным [объект jQuery] (http://learn.jquery.com/using-jquery-core/jquery-object/). И, да, вы можете console.log его. –

Смежные вопросы