私はドキュメントやサンプルからこれを理解しようとしていますが、まだ十分ではありませんか?背景、コンテンツ、devtoolsを一緒に使っている
私はデベロッパーツールパネルを作成したいが、私はコンテンツのスクリプトで取得するように私はまだ検査ウィンドウのDOMにアクセスしたいです。今のところ、検査されたウィンドウのコンテキストでは、私の選択肢は何か評価されていますが、私がそれを避けることができれば、実際にはそうしないでしょう。私はdevtoolsのページ/スクリプトと一緒にコンテンツスクリプトを使用することはできますが、アイデアだと思っていますが、それは私が期待するように動作していないようです - バックグラウンドページを使ってメッセージを送信できないようです私のdevtoolsページと私のコンテンツスクリプト。
また、彼らは要素のパネルまたは素晴らしいホバー/ハイライト機能と一緒にコンソールで行うように表示するには、これらのクールなDOMのサブツリーを取得する方法はありますか?
UPDATE
だから私は、検査ウィンドウのタブIDを転送すると、私の背景ページでそれを引き出してパネルページからコンテンツスクリプトに接続することができます。だから私はこの
// devtools.js
chrome.extension.sendMessage({
'to': chrome.devtools.inspectedWindow.tabId,
'message': 'whatever'
});
と
//background.js
chrome.extension.onMessage.addListener(function(message,sender,callback) {
message.from = sender.tab.id;
chrome.tabs.sendMessage(message.to, message, callback);
});
そして、私のcontent.jsスクリプトがうまくメッセージを取得しなければならない...と私は、送信者のタブのIDから戻って物事を送信するために働くだろうと思いましたコンテンツのスクリプトが、それはしません。バックグラウンドスクリプトはメッセージを受け取りますが、devtoolsページはそれを返すことはありません。
私は、devtools拡張を適切にデバッグする方法を理解するのに少し問題があります。コンテンツスクリプトはページのコンソールにログを記録し、バックグラウンドスクリプトは拡張ページから検査できるバックグラウンドページにログを記録しますが、devtoolsページはどこにログインしますか?
提供された評価関数を使用すると、おそらく簡単になります。ちょうど 'eval(" + someFunction.toSTring()+ "())");バックグラウンドページを介して – gengkev
あなたのコードにいくつかのバグがありません。私はあなたと同様の方法で、バックグラウンドページを介してdevtoolsとコンテンツスクリプト間の通信を成功させました。 devtoolsをデバッグするには(コンソール出力を参照)、devtoolsの左下にある「別のウィンドウにロックを解除する」ボタンを使い、F12をクリックします。別のdevtoolsウィンドウが開きます。そして、devtoolsを使ってdevtoolsをデバッグします。 Devtools、devtools、devtools - 私は同義語でうまくいかない:( –