質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Chrome extension

Chrome拡張機能

Q&A

0回答

786閲覧

webブラウザ拡張機能でページのDOM情報を取得したい. (browser/chrome API)

Meringue

総合スコア21

Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Chrome extension

Chrome拡張機能

0グッド

0クリップ

投稿2020/01/18 22:08

表示中の web ページの情報を抽出して popup.html (manufest.json の permissions.default_popup) に表示するブラウザ拡張機能を作りたいです.

・popup の js から message を発行
・content script で message を受け取ってページの情報を収集
・集めた情報を sendResponse で popup に送る
という方針で作成しましたが content script 側で message を受け取れません.

実際のコードはこんな感じです.

JavaScript

1// popup.js 2(()={ 3 chrome.runtime.sendMessage( 4 null, 5 {val: 'foo'}, 6 res => { 7 console.log('response', res); 8 } 9 ); 10})(); 11 12// contentScript.js 13chrome.runtime.onMessage.addListener( 14 (message, sender, sendResponse) => { 15 console.log('message', message.val); 16 sendResponse({val: 'bar'}); 17 return true; 18 } 19); 20 21// 実行結果 22`response undefined`

(manufest.json の permissions 設定など, 細かい注意点は全てよく確認済なので, 問題個所は上記のスクリプトでほぼ間違いありません.)
こちらのページでは同じストラテジーで作ったブラウザ拡張機能を動作報告と併せて配布しているのですが, ダウンロードして実行してみたところ Edge・Chrome ともに動作しませんでした (実行ブラウザは Windows 10 での最新安定版).
確かに MDN の onMessage イベント説明には popup と content script 間で message の listend・send が出来るという記述は一切ありません. 実際, contentScript.js の内容を background.js に移すと動作します.
しかし, 前述の方法で動作が報告されている例は他にもあります.

2018年以降 browser/chrome API の仕様が大きく変更されたのでしょうか?

ともあれ, webページの情報を popup.html に取り出せる, 現状で有効な方法を教えて頂きたいです.
何卒宜しくお願いします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問