Saya tahu bahwa pertanyaan itu telah berulang kali ditanyakan dengan cara yang berbeda, tetapi saya mencoba untuk menjawab semua jawaban (semoga saya tidak melewatkan siapa pun) dan tidak ada yang berhasil untuk saya.
Ini kode ekstensi saya:
nyata:
{
"name": "test",
"version": "1.1",
"background":
{
"scripts": ["contextMenus.js"]
},
"permissions": ["tabs", "<all_urls>", "contextMenus"],
"content_scripts" : [
{
"matches" : [ "http://*/*" ],
"js": ["jquery-1.8.3.js", "jquery-ui.js"],
"css": [ "jquery-ui.css" ],
"js": ["openDialog.js"]
}
],
"manifest_version": 2
}
contextMenus.js
function onClickHandler(info, tab) {
if (info.menuItemId == "line1"){
alert("You have selected: " + info.selectionText);
chrome.extension.sendMessage({action:'open_dialog_box'}, function(){});
alert("Req sent?");
}
}
chrome.contextMenus.onClicked.addListener(onClickHandler);
chrome.runtime.onInstalled.addListener(function() {
chrome.contextMenus.create({"id": "line1", "type": "normal", "title": "I'm line 1", "contexts":["selection"]});
});
openDialog.js
chrome.extension.onMessage.addListener(function(msg, sender, sendResponse) {
if (msg.action == 'open_dialog_box') {
alert("Message recieved!");
}
});
Dua peringatan dari halaman latar belakang berfungsi, sedangkan salah satu content_script tidak.
pesan log konsol: Kesalahan port: Tidak dapat membuat koneksi. Akhir penerimaan tidak ada.
Dimana salahku
chrome.tabs.sendMessage()
untuk mengirim pesan ke skrip konten, bukanchrome.extension.sendMessage()
.