Javascript 将消息从devtools面板发送到Chrome extensions中的新选项卡
我应该将数据从devtools面板发送到选项卡。当我使用chrome.tabs.sendMessage发送邮件时,为什么没有收到 panel.jsJavascript 将消息从devtools面板发送到Chrome extensions中的新选项卡,javascript,jquery,google-chrome,google-chrome-extension,Javascript,Jquery,Google Chrome,Google Chrome Extension,我应该将数据从devtools面板发送到选项卡。当我使用chrome.tabs.sendMessage发送邮件时,为什么没有收到 panel.js $(".options").on("submit", "form", function(e) { e.preventDefault(); newTabPort = chrome.runtime.connect({ name: "new tab" }); newTabPort.postMessage($(this).serializeArr
$(".options").on("submit", "form", function(e) {
e.preventDefault();
newTabPort = chrome.runtime.connect({ name: "new tab" });
newTabPort.postMessage($(this).serializeArray());
});
background.js
chrome.runtime.onConnect.addListener(function(port) {
port.onMessage.addListener(function(message) {
console.log(message);
});
if (port.name == "new tab") {
chrome.tabs.create({'url': chrome.extension.getURL('page/request_sending_page.html')}, function(tab) {});
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
var activeTab = tabs[0];
chrome.tabs.sendMessage(activeTab.id, {message: "olololololololo"});
});
}
});
my_extension_page.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
$("body").append("Hello world <br>");
$("body").append(request.message);
});
chrome.runtime.onMessage.addListener(函数(请求、发送方、发送响应){
$(“body”)。追加(“Hello world
”;
$(“body”).append(request.message);
});
谢谢大家! 所有带有函数回调的Chrome API都是异步的,因此在您的代码中,
Chrome.tabs.create
是在整个函数代码完成后执行的,因此下一行的Chrome.tabs.query
不会看到新创建的选项卡
chrome.extension.getURL
p.S.manifest.json:
“权限”:[“选项卡”]
所有带有函数回调的Chrome API都是异步的,因此在您的代码中,Chrome.tabs.create
是在整个函数代码完成后执行的,因此下一行的Chrome.tabs.query
不会看到新创建的选项卡
chrome.extension.getURL
p.S.manifest.json:
“权限”:[“选项卡”]
这是我的扩展页。这是当我写这个问题的时候,我不小心写错了名字。这是我扩展名的一页。这是我写问题时不小心写错了名字的文件中执行的代码。
chrome.tabs.create({url: '/page/request_sending_page.html'}, function(tab) {
var newTabId = tab.id;
chrome.tabs.onUpdated.addListener(function onComplete(tabId, info, tab) {
if (tabId == newTabId && info.status == "complete") {
chrome.tabs.onUpdated.removeListener(onComplete);
chrome.tabs.sendMessage(tabId, {message: "olololololololo"});
}
});
});