yamajiさん
吉川です。
すみません、Content Scriptsオンリーの拡張機能ということですね。
それだと、evalを使う方法しかないですね。
例えば、jQueryを読み込む場合、以下のようなコードで動作するかと思います。
var xhr = new XMLHttpRequest();
xhr.open('GET', chrome.extension.getURL('jquery-2.0.3.min.js'), true);
xhr.onload = function(e){
if ( xhr.status === 200 ) {
console.log(1);
eval(xhr.responseText);
console.log(jQuery);
}
};
xhr.send();
もちろん、web_accessible_resourcesの設定は必要になります。
evalは、バックグラウンドページでは、CSPに引っかかりますがContent Scriptsでは大丈夫なようです。
>あと、<script>タグで読み込むやり方で、コードがweb pageの
>コンテキストで実行されるのって変じゃないでしょうか。
scriptタグで読み込まれるのは、あくまで元のページのコンテンツなので、
個人的には正しい動きかと思います。
(元のページのコンテンツにscript要素があるのにそれが元のページで動いてないということになりますし)
以上
2013年8月6日 19:50 yamaji <
yamayam...@gmail.com>:
> 吉川さん、毎度ありがとうございます。
>
> 試してみたのですがcontent scriptからはchrome.tabsが使えないようで
> この方法では無理でした。
> content scriptからはchrome.extension.*以外のAPIが使えないんでしたよね。
>
> 説明が足りなかったようですみません。
>
> 拡張機能の本体はcontent script(content.js)だけになります。
> このcontent.jsからパッケージに同梱してあるライブラリlib.jsを
> 動的に読み込んで、content scriptのコンテキストで使いたい
> と思っています。
>
> あと、<script>タグで読み込むやり方で、コードがweb pageの
> コンテキストで実行されるのって変じゃないでしょうか。
>
>
>
> 2013年8月6日火曜日 16時15分06秒 UTC+9 Toru Yoshikawa: