0

拡張機能に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」に設定されています。私はかなり混乱しています...

4

4 に答える 4

1
script.setAttribute('type') = 'text/javascript';

メソッドに文字列を割り当てようとしています。構文が無効です。エラーは JQuery とは関係ありません。

于 2012-07-27T14:37:40.830 に答える
1

使い方がsetAttribute間違っています。で割り当てるのではなく、2 番目のパラメーターとして値を渡す必要があります。=

例えば、

script.setAttribute('type', 'text/javascript');
于 2012-07-27T14:37:44.340 に答える
0
script.setAttribute('type') = 'text/javascript';

それは無効です。あなたがしたい:

script.setAttribute('type', 'text/javascript');

src属性についても同様です。

于 2012-07-27T14:38:35.347 に答える
0

エラーメッセージが示すとおり、これは構文的に無効な JavaScript であるためです。関数呼び出しによって返される値を代入の左側にすることはできません。

于 2012-07-27T14:39:36.800 に答える