2016-01-16 221 views
-1

當我點擊擴展圖標時,我無法在我的簡單谷歌瀏覽器擴展中獲得我的jQuery。我已經搜索了很多如何做到這一點,但我不明白爲什麼它不適合我。如何在谷歌瀏覽器擴展插件中加載jQuery

我認爲jQuery是健全的,因爲它沒有onClicked函數,但我更喜歡它只在圖標被點擊後才能工作。

編輯:我的jQuery包含在我的項目是一個名爲 「jquery.js和」 文件

我的manifest.json看起來是這樣的:

{ 
"name": "test", 
"description": "test", 
"version": "1.0", 
"permissions": [ 
    "activeTab", 
    "http://*/*", 
    "https://*/*", 
    "https://ajax.googleapis.com/" 
], 


"content_scripts": [ 
    { 
     "matches": ["*://*/"], 
     "js": ["scripts/jquery.js", "scripts/script.js", "scripts/background.js"] 
    } 
    ], 



"background": { 
     "scripts": ["scripts/jquery.js","scripts/script.js", "scripts/background.js"] 
    }, 


"browser_action": { 
    "default_title": "test", 
    "default_icon": "image.png" 
}, 

"manifest_version": 2 

}

Background.js像此:

chrome.browserAction.onClicked.addListener(函數(製表符){​​

chrome.tabs.executeScript(tab.id, { 
     file: "scripts/jquery.js", 
     allFrames: true, 
     runAt: "document_idle" 
    }); 

    chrome.tabs.executeScript(tab.id, { 
     file: "scripts/script.js", 
     allFrames: true, 
     runAt: "document_idle" 
    }); 
}); 

而且的script.js這樣的:

chrome.browserAction.onClicked.addListener(function(tab) { 


alert("hey!"); 


$('html *:not(script, style, noscript)').each(function() { 
$(this).css("background", "pink"); 

    }); 

}); 

我知道這個功能是由瀏覽器調用,因爲該警報被拾起點擊圖標的時候,卻沒有了jQuery的。任何有關如何解決這個問題的建議/我的代碼可能有什麼問題?

感謝

+1

你得到的jQuery作爲一個文件或網址? – James

+0

我使用它作爲一個名爲「jquery.js」的文件,我編輯了我的原始帖子,包括 – tweb

回答

0

根據清單文件,你提供的,background.js和jquery.js和在同一個文件夾,所以你應該導入與正道的jquery.js在background.js:

chrome.tabs.executeScript(tab.id, { 
    file: "jquery.js", 
    allFrames: true, 
    runAt: "document_idle" 
}); 

chrome.tabs.executeScript(tab.id, { 
    file: "script.js", 
    allFrames: true, 
    runAt: "document_idle" 
}); 
}); 
+0

嘿,感謝您的回覆,但這不幫助我的問題jQuery不加載。我的問題是,我不能讓鉻擴展閱讀我的script.js的jQuery部分。不過,它讀取JavaScript警報很好。 – tweb