我试图让chrome.runtime.onMessage.addListener参数失效。但它只是在方法内部工作。
chrome.runtime.onMessage.addListener(function(response, sender, sendResponse){
alert(response); // its ok!
});
但是当我试图将它声明为外部变量时,它不起作用。
chrome.runtime.onMessage.addListener(function(response, sender, sendResponse){
response = response;
});
alert(response); // Underfined;(
答案 0 :(得分:0)
在chrome-extension tutorial中,它有:
chrome。* API中的大多数方法都是异步的:它们会立即返回,而不必等待操作完成。如果您需要知道该操作的结果,那么您将回调函数传递给该方法。在该方法返回后的某个时间,该回调将在稍后(可能更晚)执行。
chrome.runtime.onMessage.addListener(function(response, sender, sendResponse){
response = response;
});
alert(response);

chrome.runtime...
和alert(...)
将同时执行,alert
函数无法获取参数response
,因为chrome.runtime...
没有&#39 ; t完成执行,你得到 undefined 结果。您应该像在第一个代码块中一样在回调函数中编写代码。
所以在这种情况下,我认为你的问题更多是关于执行方法而不是功能范围。希望这会有所帮助。