2016-11-29 2 views
1

以下のスクリプトはFirefox/Greasemonkeyで動作しますが、Chrome/Tampermonkeyでは何も起こりません。スクリプトはGreasemonkeyで動作しますが、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(); 
+0

コンソールにいくつかの 'console.log'を入れたら、コンソールにログインしていますか? '@ require'を削除するとどうなりますか –

答えて

2

質問コードはいずれのブラウザでも機能しません。また、コンソールにエラーメッセージが表示されるはずです。

問題:

  1. document.getElementById('survey16')does not have a .hide() method。これはjQuery関数です。
  2. removeSurvey()

  3. は次のようになります。EXCEPT

    function removeSurvey (jNode) { 
        jNode.hide(); //-- .hide is a jQuery function. 
    } 
    
  4. は、waitForKeyElementsコールとremoveSurveyの間に不一致があります。最初にあなたがクラスsurvey16とのdivを探しているが、2番目に、あなたがsurvey16idを持つ要素を削除しようとしているで
    。どちらですか?
  5. @requireも使用している場合は、一般的には@grant noneを使用しないでください。通常、ページの競合やクラッシュが発生します。 jQuery is especially bad.
  6. また、@grant noneの機能は、両方のブラウザで若干異なります。 @requireを使用する場合は、特別な場合とまれなケースを除き、@grant GM_addStyleと指定してください。
+0

恐ろしいです! 'jNode'に含まれるものをデバッグする方法を知っていますか?私はあなたがこれに 'console.log'を使っているとは思いませんか? –

+1

jNodeは常に標準[jQueryオブジェクト](http://learn.jquery.com/using-jquery-core/jquery-object/)です。そして、はい、console.logできます。 –

関連する問題