簡體   English   中英

無法在Google Chrome擴展程序中使用jQuery

[英]Unable to use jquery in google chrome extension

我正在嘗試使用jquery進行post ajax調用,並且我已經嘗試了幾乎所有關於SO的解決方案,但似乎都沒有用。 我的清單是:

{"name": "__MSG_extName__",
"version": "0.1",
"manifest_version": 2,
"description": "__MSG_extDesc__",
"icons": {"16": "icon16.png", "128": "icon128.png"},
"background": {"persistent": false, "scripts": ["background.js"]},
"default_locale": "en",
"content_scripts": [
{
  "matches": ["<all_urls>"],
  "js": ["jquery-2.1.3.js"]
}
],
"permissions": ["contextMenus", "downloads", "downloads.open", "tabs", "http://*/*", "https://*/*"]}

background.js文件類似於:

chrome.downloads.onCreated.addListener(function(downloadItem) {

console.log("Download Link is " + downloadItem.url)
chrome.tabs.executeScript(null, { file: "jquery-2.1.3.js" }, function() {
console.log("jquery is loaded");
var linkSync = {
    "document": {
        "downloadLink": downloadItem.url,
        "isSynced": false},
    "safe": true
    };

$.post("url/to/post",
        linkSync,
        function( data ) {
        console.log("Success" + data );
    });
});

});

我得到的錯誤是:

Download Link is http://www.mymp3song.com/files/download/id/33724
background.js:14 jquery is loaded
extensions::uncaught_exception_handler:8 Error in response to tabs.executeScript: ReferenceError: $ is not defined
at Object.callback (chrome-extension://kbhkaajolcelehoonafmkgaahfgphnok/background.js:22:2)
at chrome-extension://kbhkaajolcelehoonafmkgaahfgphnok/background.js:13:16

如您所見,我已經以編程方式和清單形式添加了jquery.js,但似乎都沒有。 即使我刪除了它們中的任何一個,它也不起作用。 有人可以指出我該怎么做才能使它起作用嗎?

如果希望jQuery在后台頁面中運行,則需要將其添加到后台頁面。

您嘗試使用的兩種方法都將代碼添加到內容腳本上下文中。

您需要的是:

"background": {
  "persistent": false,
  "scripts": ["jquery-2.1.3.js", "background.js"]
},

在您的背景頁面中加載jQuery。 請注意,順序很重要。

我建議您看一下“ 架構概述”

將您的json修改為此,它將對您有用,參考在這里

"content_scripts": [ {
    "js": [ "jquery.min.js", "background.js" ],
    "matches": [ "http://*/*", "https://*/*"]
  }] 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM