web-dev-qa-db-ja.com

私の非常に単純なGreasemonkeyスクリプトが実行されていませんか?

この非常に基本的なGreasemonkeyスクリプトで問題が発生しています。おそらく、メタデータの構成に問題があります。

これが基本ファイルの完全なソースです

// ==UserScript==
// @name        Google Hello
// @namespace   https://google.com
// @description Basic Google Hello
// @include     *
// @version     1
// ==/UserScript==

alert("hi google!");

このスクリプトは、Google.comにアクセスしたときに実行されるはずですが、アラートがポップアップしません。問題は何ですか?

Firefoxを搭載したUbuntuでこのスクリプトを実行しようとしています。

15
John Galt

alerts()が起動しない場合、 Firefoxの_Prevent this page from creating additional dialogs_オプションをクリックしたか、ブラウザの設定(古いバージョンのFirefox)を設定したか、Firefoxが次のようになっている可能性があります。メモリが不安定です。

Universal Greasemonkeyのデバッグ手順:

alert()の問題に対して1つのステップが追加されています。)

  1. まず、問題のページに対してスクリプトが実行されていることを確認してください。
    そのページを閲覧しているときに、Greasemonkeyアイコンの横にある下向きの三角形をクリック(または、ツール->FirefoxメニューのGreasemonkey)そして、期待されるスクリプト名が表示され、チェックされていることを確認します。例えば:
    Greasemonkey states

  2. Firefoxのブラウザコンソールに関連するメッセージ/エラーがあるかどうかを確認します。
    を押してコンソールをアクティブにします CtrlShiftJ、または同等のもの。

    これは、メッセージとエラーの両方がブラウザコンソールにどのように表示されるかを示すスクリーンショットです-WebページとGreasemonkeyスクリプトの両方が原因です。
    Sample Browser console results

  3. _about:config_を開き、_capability.policy.default.Window.alert_を検索し、値が見つかった場合は削除またはリセットします。

  4. Greasemonkeyスクリプトをアンインストールします。
  5. ブラウザのキャッシュを完全にクリアします。
  6. Firefoxを完全にシャットダウンします。タスクマネージャーまたは同等のものを使用して、メモリにFirefoxスレッド/タスク/プロセスがないことを確認します。
  7. Firefoxを再起動します。
  8. Greasemonkeyスクリプトを新たにインストールします。
  9. それでも機能しない場合は、新しいFirefoxプロファイルを作成するか、別のコンピューターをすべて試してください。

追加の問題:

  1. バージョンの3つを提供してください:(1)OS、(2)Firefox、(3)GreasemonkeyまたはTampermonkeyまたはScriptishなど。

  2. _@include *_は、スクリプトはすべてのページで起動します!これはほとんどの場合不適切な方法です。 (いくつかの例外がありますが、あなたのケースは1つではありません。)

  3. _@namespace_はページの実行場所を制御しません。 _@namespace_が行う唯一のことは、複数のスクリプトに同じ名前を付けることです(_@namespace_ sである限り)異なっています)。 _@namespace_ドキュメント を参照してください。

  4. デバッグにalert()を使用することは避けてください。それは煩わしく、タイミングの問題を隠すことができます。
    se console.log()次のことができますブラウザで結果と役立つエラーメッセージ(ヒント、ヒント)を確認できますコンソール

  5. Googleはほとんどの場合_www.google.com_を使用/リダイレクトします(英語のUSAユーザーの場合)。したがって、_// @include  https://google.com_が希望どおりに機能することはほとんどありません。

    使用をお勧めします:

    _// @match  *://www.google.com/*
    _

    出発点として。

    Firefox Greasemonkeyでは、次のように、魔法の_.tld_を使用してGoogleのほとんどの国際ドメインをサポートすることもできます。

    _// @include  http://www.google.tld/*
    // @include  https://www.google.tld/*
    _

    両方の行を使用します。これは、_@match_行ほどには機能しないことに注意してください。したがって、1つの国/地域のみを気にする場合は、_@match_を使用してください。


すべてを一緒に入れて:

  1. スクリプトをアンインストールします。
  2. Firefoxを再起動します。
  3. thisスクリプトをインストールします:

    _// ==UserScript==
    // @name        Google Hello
    // @namespace   John Galt
    // @description Basic Google Hello
    // @match       *://www.google.com/*
    // @version     1
    // @grant       none
    // ==/UserScript==
    
    console.log ("Hi Google!");
    _
  4. Google にアクセスし、Firefoxのブラウザコンソールで結果を確認します。

  5. それでも問題が解決しない場合は、上記のすべてのデバッグ手順に従ってください。
  6. それでも問題が解決しない場合は、新しい質問を開いて次のすべてを入力してください:
    1. 上記の3つのバージョン。
    2. ブラウザコンソールで表示される関連エラーとメッセージ。
    3. 問題を再現するために必要な正確なコードと手順。 このために MCVEを作成してください!
    4. 問題を解決しようとしたことの簡単な要約。
25
Brock Adams