我是鉻擴展的新手,我在開始時遇到了一些問題。郵件在Chrome擴展中傳遞不起作用
首先,我的總體目標是能夠點擊彈出式窗口中的按鈕,並讓DOM中的內容發生變化。如果我理解正確,那麼執行此操作的方法是加載內容腳本並向該內容腳本發送消息。這是我從看Chrome的開發者頁面有,但我沒有看到任何在控制檯日誌:
的manifest.json
{
"manifest_version": 2,
"name": "Test",
"version": "1.0",
"permissions": [
"tabs", "http://*/*"
],
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["content.js"]
}
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
}
}
popup.html
<html>
<body>
<script src="popup.js"></script>
</body>
</html>
彈出.js文件
document.addEventListener('DOMContentLoaded', function() {
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendMessage(tab.id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});
});
});
content.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
});
很多此代碼直接來自文檔,所以我不知道我做錯了什麼。
我沒看到你的代碼有什麼問題。你的Chrome版本是什麼?根據您的總體目標,我認爲您應該聽取'chrome.browserAction.onClicked'(不彈出)並以編程方式注入內容腳本(https://developer.chrome.com/extensions/content_scripts.html#pi)在事件處理程序中。 –
@方覺我發送給內容腳本的消息取決於彈出窗口中的某些用戶輸入,所以我需要它。我的Chrome版本是26.0.1410.63版。 – gsingh2011