拡張機能にjQueryライブラリを含めようとすると、JSエンジンでエラーが発生します。これはコードです:
chrome.tabs.executeScript(null,{code:"
if (typeof jQuery == 'undefined') {
var script = document.createElement('script');
script.setAttribute('type') = 'text/javascript';
script.setAttribute('src') = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(script);
};
"});
そしてこれは結果です:
Uncaught ReferenceError: Invalid left-hand side in assignment
(anonymous function)
このコードは、popup.htmlに含まれているpopup.jsファイルに記述されています。
私がこのようなことをするときでさえ:
chrome.tabs.executeScript(null, {file: "browser.js", allFrames: true}, window.close());
そして、browser.jsで、上記のコード(jQueryライブラリを含む)を指定しますが、同じことが起こります。最も奇妙なことは、コードが実行されるタブがすでにそれをクリアしている場合でも(たとえば、Flickrなど)、jQueryがまったく定義されていないように見えることです。実際、typeofjQueryは常に「undefined」に設定されています。私はかなり混乱しています...