1

我正在构建一个 Chrome 扩展程序,并试图从chrome.tabs.captureVisibleTab(). 由于某种原因,该消息不会发送到我的内容脚本...

chrome.runtime.onMessage.addListener(
 function(request, sender, sendResponse) {
 var responseObj = new Object();
 if(request.screenshotRequest == true){
  chrome.tabs.captureVisibleTab({ format: "png"}, function(dataUrl){
    responseObj.screenshotRequest = dataUrl;
    alert(sendResponse);
    sendResponse(responseObj);
   });
  }
});

manifest.json允许正确的权限以允许此消息传递发生。当我尝试使用消息sendResponse()之外的chrome.tabs.captureVisibleTab()消息传递消息时,消息正确传递,我可以从内容脚本访问它。知道为什么这没有通过吗?

UPDATEalert(sendResponse);证明可以chrome.tabs.captureVisibleTabs()访问,sendResponse因为该对象正确显示在警报消息中。

4

1 回答 1

4

我深入研究了解压扩展的控制台(显然它与常规扩展的控制台不同:Where to read console messages from background.js in a Chrome extension?)它说如果在回调中被调用chrome.runtime.onMessage.addListener则需要返回 truesendResponse在函数中。有效!

于 2013-08-15T17:46:39.503 回答