chrome.tabs.captureVisibleTab的错误

时间:2013-08-15 16:20:07

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

我正在构建Chrome扩展程序,并尝试从chrome.tabs.captureVisibleTab()内部向我的事件background.js页面发送消息。由于某种原因,邮件不会发送到我的内容脚本......

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()传递消息时,消息正确传递,我可以从内容脚本访问它。知道为什么这不通过吗?

更新alert(sendResponse);证明chrome.tabs.captureVisibleTabs()有权访问sendResponse,因为该对象已正确显示在提醒消息中。

1 个答案:

答案 0 :(得分:4)

我挖到了解压缩扩展程序的控制台(显然它与常规扩展程序的控制台不同:Where to read console messages from background.js in a Chrome extension?)并且如果chrome.runtime.onMessage.addListener被调用,则表示sendResponse需要返回true在函数中的回调内部。它奏效了!