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.js 文件中,包含在 popup.html 中。

即使我做这样的事情:

chrome.tabs.executeScript(null, {file: "browser.js", allFrames: true}, window.close());

而且,在 browser.js 中,我指定了上面编写的代码(其中包含 jQuery 库),它发生了同样的事情。最奇怪的是,jQuery 似乎根本没有定义,即使执行代码的选项卡已经取消了它(例如 Flickr)。事实上,jQuery 的 typeof 总是设置为 'undefined'。我很困惑...

4

4 回答 4

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

您正在尝试将字符串分配给方法。您的语法无效。该错误与 JQuery 无关。

于 2012-07-27T14:37:40.830 回答
1

您使用setAttribute不正确。您需要将值作为第二个参数传递,而不是使用分配=

例如,

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 回答