在background_page中引用jQuery.js会导致jQuery无法正常工作

时间:2012-07-08 05:42:08

标签: jquery google-chrome-extension

我在manifest_scripts

下的manifest.json中定义了jQuery.js
"background_page": "html/bg.html",
"content_scripts": [
    {
        "matches": ["\u003Call_urls\u003E"],
        "js": ["js/jquery.js"/]
    }
]

在bg.html中,我添加了一个点击事件处理程序来查找< p> ...< / p>节点

<script>

    chrome.browserAction.onClicked.addListener(function(tab) {  
        chrome.tabs.executeScript(null, {code: "alert($('p').text());"});
    });

</script>

如果只是这样做,它可以正常工作。但是如果我在bg.htm中添加一个js引用,那么jQuery就不再工作了,甚至src =“”

<script type="text/javascript" src="../js/jquery.js">

    chrome.browserAction.onClicked.addListener(function(tab) {  
        chrome.tabs.executeScript(null, {code: "alert($('p').text());"});
    });

</script>

background_page和content_script应该在不同的范围内,但仍然没有找到这里发生的事情。

1 个答案:

答案 0 :(得分:2)

如果您的脚本标记具有src属性,则不会解析内容。

见这里:http://jsfiddle.net/cnK7s/


相反,请使用2个单独的script标记:

<script type="text/javascript" src="../js/jquery.js"></script>

<script type="text/javascript">

    chrome.browserAction.onClicked.addListener(function(tab) {  
        chrome.tabs.executeScript(null, {code: "alert($('p').text());"});
    });

</script>