其他.js文件无法访问jQuery

时间:2013-01-21 11:53:33

标签: javascript google-chrome-extension

这是一个html页面:

    <html>
<head>
    <script src="http://code.jquery.com/jquery-1.9.0.min.js" type="text/javascript"></script>
</head>
<body>
    <script src="background.js" type="text/javascript"></script>
</body>
</html>

这是background.js:

alert("Alert1!");
var test = jQuery.trim(" Words and / { objects & things");
alert("Alert2!");

Alert1有效,但alert2从不播放。如果我删除jQuery然后它的工作原理。我已经在标题和正文中尝试了background.js文件。我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:1)

http://code.jquery.com/jquery-1.9.0.min.js下载jquery.js并将其内联到您的扩展程序目录中,并将其引用内联,如下所示。

根本原因

Chrome扩展程序不支持对文件的外部引用。

工作版

<html>
<head>
    <script src="jquery-1.9.0.min.js" type="text/javascript"></script>
    <script src="background.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>

编辑1

工作版

的manifest.json

将Jquery和您的代码注册到manifest file

{
    "name": "Jquery In Background",
    "description": "http://stackoverflow.com/questions/14438044/jquery-cant-be-accessed-by-other-js-file",
    "background": {
        "scripts": [
            "jquery.js",
            "background.js"
        ]
    },
    "version": "1",
    "manifest_version": 2
}

background.js

您之前的代码

alert("Alert1!");
var test = jQuery.trim(" Words and / { objects & things");
alert("Alert2!" + test);

答案 1 :(得分:1)

我可以使用以下清单和代码警告修剪后的值。

清单

{
  "name": "Tester",
  "version": "0.1",
  "manifest_version": 2,
  "background":{
    "page":"background.html",
    "persistent": false
  }
}

background.html

<html>
<head>
</head>
<body>
    <script src="jquery-1.9.0.min.js" type="text/javascript"></script>
    <script src="background.js" type="text/javascript"></script>
</body>
</html>

background.js

var test = jQuery.trim(" Words and / { objects & things");
alert(test);