問題タブ [content-script]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - Google Chrome 拡張機能、コンテンツ スクリプトで JQuery が機能しませんか?
クロム拡張開発チュートリアルで述べたように、manifest.json
ファイルに jQuery を含めて、次のようにコンテンツ スクリプトで使用できます。
私はそれをしました。しかし、JavaScript コンソールを開いて拡張機能のブラウザ アクション アイコンをクリックすると、「Uncaught ReferenceError: $ is not defined」というエラーが表示されます。
どうすればいいの!? 何が悪いのか理解できません。
もともと回答として投稿されたOPからの更新:
リクエストに応じて、完全なマニフェストとコンテンツ スクリプトのサンプルを以下に示します。マニフェスト.json:
コンテンツ スクリプト スニペット:
rsanchezの答えについて。詳しく説明してみます。よく知られているように、2 つの JavaScript コンソールを開くことができます。1 つ目は拡張機能の popup.html に関連付けられ、2 つ目は現在開いている Web ページに関連付けられています。コンテンツスクリプトとpopup.htmlに含まれるスクリプトに次のコードスニペット(たとえば)があります
現在開いている Web ページに関連付けられたコンソールを開くと上記のエラーが表示されますが、拡張機能の popup.html に関連付けられた js コンソールを開くと、本体の幅がコンソールに表示されます。つまり、popup.html に含まれるスクリプトは jQuery ライブラリを参照し、コンテンツ スクリプトは参照しません。
jquery - Chrome-extension:メッセージイベントが発生したときにcontent-scriptからjqueryUIダイアログボックスを開く
Chrome拡張機能からjqueryダイアログボックスを開こうとしています。それについていくつかの投稿がありますが、それらのすべてが私のニーズに関連しているわけではありません。
私は、動作するコードを持っていると主張するこれを見つけました。私は自分の拡張機能でそのメソッドを使用しようとしましたが、成功しませんでした。
バックグラウンドでの私の拡張機能では、次のようにコンテンツスクリプトにメッセージを送信しています。
そして、コンテンツスクリプトに、コピーしたコードをほぼそのまま入れました(申し訳ありませんが、念のため、できるだけオリジナルに近づけて、何をいじっているのかを調べたいと思いました。でも):
これでアラートがポップアップするので、メッセージが到着したことはわかりますが、ダイアログが開いていません。
ここの何が悪いのか教えていただけますか?
編集:
ブロックの要求に従って、ここに私のマニフェストがあります:
css - Google Chrome 拡張機能での CSS コンテンツ スクリプトの問題
コンテンツ スクリプトを使用して、Google ホームページの「Google」ロゴ イメージをブロックする単純な Chrome 拡張機能を作成しています。content-script ページの指示に従いましたが、まだ機能していないようです。誰かが私が間違っていることを見つけることができますか?
編集: flickr.comなどの他の Web サイトでテストしたところ、完全に動作します。Google ホームページの CSS も検索しましたが、どの CSS ルールが自分の CSS を上書きしているのかわかりません。何か案は?他の CSS が私のものをオーバーライドできないように、より強力な CSS インジェクションを作成するにはどうすればよいですか?
manifest.json :
ブロッカー.css :
javascript - Chrome 拡張機能: コンテンツ スクリプトで localStorage 値をブール値に変換する
現在、ユーザースクリプトの 1 つを Chrome 拡張機能に変換しています。私がまだ立ち往生しているのは、ローカルストレージの値をコンテンツスクリプトの変数に正常に保存することだけです。ここで 1 つの例を挙げます。他のものは似ていますが、名前が異なります。
ご覧のとおり、「REMOVE_WARNINGS」に割り当てられた値について、拡張機能の localStorage をクエリします。これは、コンテンツ スクリプトのさらに先で、この変数が特定のアクションを実行する必要があるかどうかを確認するためにチェックされるためです。元の値は、HTML オプション (true または false) によってオプション ページを介して localStorage に割り当てられます。これは問題なく発生します。値「true」(または「false」) が正常にコンテンツ スクリプトのメソッドに返され、コンソールに出力されます。これは、私が確認したためです。機能しないのは、コンテンツ スクリプトのグローバル変数REMOVE_WARNINGSに値を割り当てることです。
を含むいくつかのオプションを試しました。またREMOVE_WARNINGS = response.status;
、REMOVE_WARNINGS = response.status == "true";
破壊的に印刷される可能性があると考えて、コンソール出力行を削除しようとしました。これらのオプションのいずれも、ブール値「true」または「false」をグローバル変数に正常に格納していないようです。これは、スクリプトが実行すべきアクションを実行しないためです。
ここで私が間違っていることを誰かが見ていますか?特に値を明確に読み取ることは問題ないため、この時点で完全に迷っています。それをコンテンツ スクリプトのグローバル変数に格納しているため、これが問題です。
乾杯ケネス
google-chrome - Chrome拡張機能のコンテキストメニュー項目でコンテンツスクリプトメソッドを呼び出すことは可能ですか?
コンテキスト メニュー項目を使用して、コンテンツ スクリプトで記述されたメソッドを呼び出そうとしています。
それは可能ですか?
私が試したように、コンテキストメニューはバックエンドでしかできませんでした。
例えば
この例では、現在のページではなくバックグラウンド ページで情報をログに記録できませんでした。
指定したページに何かを生成するコンテンツ スクリプトが 1 つあります。
コンテキストメニューからこの機能を呼び出す必要があります。何をすればよいでしょうか?
javascript - Chrome コンテンツ スクリプト (De)/有効化
ユーザーがボタンを使用して Chrome コンテンツ スクリプトをアクティブ化/非アクティブ化できるようにしようとしています。これを行う最善の方法は、chrome.browserAction を使用することだと私には思えます。
しかし、私が追加すると
background.html では、ボタンが押されているかどうかに関係なく、スクリプトが実行されています。スクリプトの残りの部分は正常に実行されています。唯一の問題は、ブラウザのボタンです。問題が発生している可能性のあるアイデアはありますか? ありがとう!