2016-11-29 1 views
1

Le script ci-dessous fonctionne dans Firefox/Greasemonkey, mais rien ne se passe dans Chrome/Tampermonkey.Script fonctionne dans Greasemonkey, mais rien ne se passe dans Tampermonkey?

Quelqu'un peut-il voir pourquoi cela ne fonctionne pas dans 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

si vous mettez un 'console.log' est-il connecté à la console? Que faire si vous supprimez certains '@ require' –

Répondre

2

Le code question ne doit pas fonctionner dans les deux navigateur et vous devriez voir les messages d'erreur dans les consoles.

Problèmes:

  1. document.getElementById('survey16')does not have a .hide() method. C'est une fonction jQuery.
  2. removeSurvey() devrait être:

    function removeSurvey (jNode) { 
        jNode.hide(); //-- .hide is a jQuery function. 
    } 
    
  3. SAUF, il y a un décalage entre l'appel et waitForKeyElementsremoveSurvey.
    Dans le premier, vous êtes à la recherche d'un div avec classesurvey16, mais dans le second, vous essayez de supprimer un élément avec l'idsurvey16. Lequel est-ce?
  4. En règle générale, n'utilisez pas @grant none lorsque vous utilisez aussi @require, cela entraîne généralement des conflits de pages et des plantages. jQuery is especially bad.
  5. En outre, @grant none fonctionne légèrement différemment dans les deux navigateurs. Lorsque vous utilisez @require, spécifiez @grant GM_addStyle sauf dans des cas spéciaux et rares.
+0

Awesome! Connaissez-vous un moyen de déboguer ce que 'jNode' contient? Je suppose que vous n'utilisez pas 'console.log' pour ça? –

+1

jNode est toujours un objet [jQuery] standard (http://learn.jquery.com/using-jquery-core/jquery-object/). Et, oui, vous pouvez consoler.log. –