Greasemonkeyスクリプトが実行されない理由を特定する方法[複製]
-
05-07-2019 - |
質問
この質問にはすでに回答があります:
ページで実行するGreasemonkeyスクリプトを取得しようとしています。しかし、そうではありません。
スクリプトをどのようにデバッグしますか?
新しいGreasemonkeyスクリプトを開始するための、可能な限り小さな手順は何ですか?
解決
スクリプト内のどこにでもログを書き込むことができ、スクリプトで行われた場合のより良いトレースを取得できます:
GM_log("Hello, World!");
http://wiki.greasespot.net/GM_log
詳細: http://wiki.greasespot.net/Greasemonkey_Manual:Other_Useful_Tools#JavaScript_Console
別のヒント:グリースモンキーwiki全体を見てください。彼らはそこにたくさんの良いものを持っています: http://wiki.greasespot.net/Main_Page
他のヒント
ユーザースクリプトを使用して始めたとき、最初のエラーはワイルドカードを使用していませんでした。
// Broken:
// @include https://www.example.com/
// Working:
// @include https://www.example.com/*
これは、スクリプトが適用されず、まったく実行されない最も簡単な方法です。さらに、構文エラーを確認してください。セミコロンの位置を間違えると、スクリプトの解析が妨げられる可能性があるため、無視されます。
Firefoxで、[ツール]>を開きます。エラーコンソールを表示し、ページを読み込むときにそれを確認します。ページからの警告に圧倒される場合は、エラーでフィルタリングできますが、それでもスクリプトの問題が強調表示されることがよくあります。
私のgreasemonkeyスクリプトは機能していました。行を追加しました。動作を停止しました。行を削除しました。それでも動作しませんでした。
新しい行を追加してスクリプトをリロードしたときに、greasemonkeyが壊れた updater.php
スクリプトをインストールしたと判断しました。古いスクリプトをリロードすると、 updater.php
スクリプトの壊れたバージョンが保持されました。最終的に、Firefox Webコンソールで updater.php
スクリプトに関するエラーメッセージを見つけました。 updater.php
スクリプトを、新しいバージョンのスクリプトを読み込んだ後、コメントを含むファイルに置き換えたところ、スクリプトの実行が開始されました。
Macでは、 updater.php
は / Users / csimmons / Library / Application Support / Firefox / Profiles / 81ri7k71.default / gm_scripts / Extended_LoU_Tweak
にありました。 p>
Firefoxのデフォルトプロファイルの gm_scripts /
ディレクトリで、同様の updater.php
ファイルを見つけることができる場合があります。
私にはスクリプトに構文エラーがあり、Greasemonkeyはエラーメッセージを出しませんでした。スクリプトをJSコンソールにコピー&ペーストすると、秘密が明らかになりました。
最初にGreasemonkeyが有効になっていることを確認してください:
また、 @include
の構文には、一致するパターンが1つだけあります。別の行が必要な場合は、別の @include
行を追加します。
この問題もありました。これが私にとっての解決策でした:
-
発生したときに作業していたコードの一部をチェック(およびトリッキーな変更)
-
GreaseMonkey
のアンインストールと再インストール
-
その後、実際のエラーレポートが表示されます
編集:今日、問題は通常よりも頻繁に発生します(新しいリリース?) FirefoxのWebツールは、エラーメッセージのために、greasemonkeyまたはJSエンジンと戦闘しているようです。
だからどこか(ctrl + alt + k)を見ていると、エラーメッセージが他のどこかに表示されます(他のコンソールを開いてみてください)。これは面白いゲームのようです。
ページのURLがナビゲートではなくJavascriptで設定されている場合(InstagramがポップアップウィンドウにパーマリンクURLを与えるなど)、Greasemonkeyはスクリプトを実行中として表示しますが、実際には起動しません。 URLをリロードして、実際に同じページに移動するかどうかを確認してください。そうでない場合は、ポップアップURLではなくホームページのURLと一致させる必要があります。