Chrome端口由Javascript弹出窗口关闭

时间:2016-04-18 13:30:10

标签: javascript google-chrome google-chrome-extension

我正在撰写Chrome扩展程序,其中扩展程序页面与后台页面进行通信,并且还会从用户那里获得一些输入。

我有这样的事情:

contentScript.js:

chrome.runtime.onConnect.addListener(function(port) {
    if (port.name === "myPort") {
        port.onMessage.addListener(function(message) {
            if (message.type === "myMessage") {
                window.console.log("Received MyMessage");

                var input = window.prompt("input please");

                port.postMessage({ data: input});
                return true;
            }
        }
        port.onDisconnect.addListener(function(arg) {
            window.console.log("Port disconnected! ");
            window.console.log(arg);
        });
    }
});

extension.js:

chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {
    let port = chrome.tabs.connect(tabs[0].id, {name: "myPort"});
    port.onMessage.addListener(function(data) {
        doSomethingWithInput(data.input);
    });

    port.postMessage({ type: "myMessage" });
});

我看到的是“端口断开连接!”#39;一出现提示弹出窗口即显示消息。如果我注释掉提示内容并硬编码输入一切正常。

这是Chrome长期以来的预期行为吗?'端口?如果是这样,为什么?对于我试图做的事情,是否有解决方法?

API文档描述了何时关闭某个端口here,但我不清楚其中任何一个都适用。提示消息是否计入导航页面?

0 个答案:

没有答案