3

簡単に言えば、私はGoogle Chrome拡張機能に取り組んでいます。拡張機能は、デフォルトでは、操作対象のページのスコープ内の変数にアクセスできません (DOM を介して通信する必要があります)。

私がやろうとしているのは、スクリプトをページに挿入することです。これは、script タグと src 属性を定義することでうまく機能します。

問題は、このスクリプトが変数を事前に初期化する必要があることです。この変数を初期化するために、コードをインラインで (外部ソースからロードするのではなく) スクリプト要素を作成しようとしていますが、うまく動作しません。

これは可能ですか?可能であれば、スクリプト内でソースを定義するにはどうすればよいですか? JS ソースを含むテキストノードをスクリプト要素に追加しようとしましたが、役に立ちませんでした。

4

1 に答える 1

1

最悪ですが、これを行う最善の方法は、DOM にデータを挿入して通信することです。

次のようなことを行うことで、これを達成できる場合もあります。

var script = document.createElement('script');
script.type = 'text/javascript';
script.text = 'alert("It works!");';
document.head.appendChild(script);

私はこれをテストしていませんが、コンテンツ スクリプトからは機能すると思います。

于 2010-02-24T06:47:46.787 に答える