この非常に基本的なGreasemonkeyスクリプトで問題が発生しています。おそらく、メタデータの構成に問題があります。
これが基本ファイルの完全なソースです
// ==UserScript==
// @name Google Hello
// @namespace https://google.com
// @description Basic Google Hello
// @include *
// @version 1
// ==/UserScript==
alert("hi google!");
このスクリプトは、Google.comにアクセスしたときに実行されるはずですが、アラートがポップアップしません。問題は何ですか?
Firefoxを搭載したUbuntuでこのスクリプトを実行しようとしています。
alerts()
が起動しない場合、 Firefoxの_Prevent this page from creating additional dialogs
_オプションをクリックしたか、ブラウザの設定(古いバージョンのFirefox)を設定したか、Firefoxが次のようになっている可能性があります。メモリが不安定です。
(alert()
の問題に対して1つのステップが追加されています。)
まず、問題のページに対してスクリプトが実行されていることを確認してください。
そのページを閲覧しているときに、Greasemonkeyアイコンの横にある下向きの三角形をクリック(または、ツール->FirefoxメニューのGreasemonkey)そして、期待されるスクリプト名が表示され、チェックされていることを確認します。例えば:
Firefoxのブラウザコンソールに関連するメッセージ/エラーがあるかどうかを確認します。
を押してコンソールをアクティブにします CtrlShiftJ、または同等のもの。
これは、メッセージとエラーの両方がブラウザコンソールにどのように表示されるかを示すスクリーンショットです-WebページとGreasemonkeyスクリプトの両方が原因です。
_about:config
_を開き、_capability.policy.default.Window.alert
_を検索し、値が見つかった場合は削除またはリセットします。
バージョンの3つを提供してください:(1)OS、(2)Firefox、(3)GreasemonkeyまたはTampermonkeyまたはScriptishなど。
_@include *
_は、スクリプトはすべてのページで起動します!これはほとんどの場合不適切な方法です。 (いくつかの例外がありますが、あなたのケースは1つではありません。)
_@namespace
_はページの実行場所を制御しません。 _@namespace
_が行う唯一のことは、複数のスクリプトに同じ名前を付けることです(_@namespace
_ sである限り)異なっています)。 _@namespace
_ドキュメント を参照してください。
デバッグにalert()
を使用することは避けてください。それは煩わしく、タイミングの問題を隠すことができます。
se console.log()
。次のことができますブラウザで結果と役立つエラーメッセージ(ヒント、ヒント)を確認できますコンソール。
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
_を使用してください。
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!");
_
Google にアクセスし、Firefoxのブラウザコンソールで結果を確認します。