Bug with chrome.tabs.captureVisibleTab

Bug with chrome.tabs.captureVisibleTab

本文关键字:captureVisibleTab tabs chrome with Bug      更新时间:2023-09-26

我正在构建一个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允许使用正确的权限来进行此消息传递。当我尝试在chrome.tabs.captureVisibleTab()之外使用sendResponse()传递消息时,消息会正确传递,并且我可以从内容脚本访问它。知道为什么这件事没有过去吗?

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

我深入研究了解压缩扩展的控制台(显然它与常规扩展的控制台不同:在Chrome扩展中,从background.js读取控制台消息在哪里?),它说如果在函数的回调中调用sendResponse,则chrome.runtime.onMessage.addListener需要返回true。成功了!

相关文章:
  • 没有找到相关文章