chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "knockknock");
port.postMessage({joke: "Knock knock"});
});
我想在这个Chrome API函数之外使用'port',我该怎么做?调用javascript函数结果函数
chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "knockknock");
port.postMessage({joke: "Knock knock"});
});
我想在这个Chrome API函数之外使用'port',我该怎么做?调用javascript函数结果函数
简单:
要么调用一个函数的响应之后,价值传递给它:
chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "knockknock");
port.postMessage({joke: "Knock knock"});
callback(port);
});
function callback(value){
console.log(value); //accessed value outside that function
}
OR
创建一个全局变量和效应初探分配给它
var portValue;
chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "knockknock");
port.postMessage({joke: "Knock knock"});
portValue = port;
});
取决于您想如何使用该值,您可以调整任何方法。
这是否解决您的问题?
var currentPort;
chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "knockknock");
port.postMessage({joke: "Knock knock"});
currentPort = port;
});
Uncaught TypeError:无法读取未定义的属性'postMessage' CODE: var currentPort; chrome.runtime.onConnect.addListener(功能(端口){ console.assert(port.name == “knockknock”); //功能aanroepen(){// port.postMessage({笑话:“敲敲入“}); //} port.postMessage({joke:”Knock knock“}); currentPort = port; }); currentPort.postMessage({joke:“敲敲”}); – user1857116
看起来你正试图在侦听器被调用之前在'currentPort'上调用'postMessage'。 –
someFunction function(){
return chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "knockknock");
port.postMessage({joke: "Knock knock"});
return port;
});
var port = someFunction();
你尝试端口变量传递到另一个方法,而不是立即调用呢? –