1

HelloWorldのサンプル拡張機能についてはすでに作成しました。現在、宣言されている場合、特定のJavaScript変数の値を取得するChrome拡張機能を作成しようとしています。

だから、あるとしましょう

var test = 'a';

ソースコードで。aその価値を知りたい。

更新:「元の」Webサイトのコードにアクセスすることはできませんが、この変数は常に存在し、常に異なる特定の値を持っていることを知っています。

アラートで十分です。(拡張機能のページからアラートを送信できますか?)

「許可」や「タブ」などがあるのを見ましたが、何が足りないのかわかりません。

検索してみたところ、似たようなものが見つかりましたが、この例ではリンクをクリックしても何も起こりません。

4

2 に答える 2

1

コンテンツスクリプトから、ページで宣言された変数にアクセスすることはできません。

ドキュメントからの抜粋:

コンテンツスクリプトは、孤立した世界と呼ばれる特別な環境で実行されます。挿入されたページのDOMにはアクセスできますが、ページによって作成されたJavaScript変数や関数にはアクセスできません。

私が見る唯一の方法は、バックグラウンドページでXHRを介してスクリプトソースをロードし、それを解析することです。次に、結果をコンテンツスクリプトに送信する場合は、メッセージパッシングを使用できます。後続のスクリプトによって変数の値が変更された場合、このソリューションは機能しないことに注意してください。

于 2012-09-18T08:41:41.750 に答える
0

そのページを制御できる場合は、その値をページ上の非表示のHTML要素に入れて、拡張機能がコンテンツスクリプトで抽出できるようにすることができます。

ウェブサイト上:

var test a = 'a';
document.documentElement.dataset["a"] = a;

拡張機能のコンテンツスクリプト:

var a = document.documentElement.dataset["a"];

ページ上のスクリプトの後にコンテンツスクリプトが実行されていることを確認してください("run_at": "document_end"マニフェストを追加するなど)

于 2012-09-15T10:29:23.103 に答える