微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Chrome 扩展程序错误“runtime.lastError:在收到响应之前消息端口已关闭”

如何解决Chrome 扩展程序错误“runtime.lastError:在收到响应之前消息端口已关闭”

我正在构建一个 chrome 应用程序以在页面加载后单击一个元素:

manifest.json:


{
    "manifest_version": 2,"name": "click chapter-btn","version": "1.0","browser_action":{  },"background": {
      "scripts": ["background.js"]
    },"permissions": [
      "tabs","storage","https://www.youtube.com/*"
    ],"content_scripts": [
        {
          "matches": ["https://www.youtube.com/*"],"all_frames": true,"js": ["contentScript.js"]
        }
      ]
  }

contentscript.js:

chrome.runtime.onMessage.addListener(function(request,sender,sendResponse) {
  if(document.readyState !== 'complete') {
      window.addEventListener('load',afterWindowLoaded);
  } else {
      afterWindowLoaded();
  }
  function afterWindowLoaded(){
    setTimeout(()=>{
      var btn = document.querySelector('.ytp-chapter-title-prefix')    
      btn?.click()  
     },3000)
  }
  return true
});

background.js:


chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab){
    if(changeInfo && changeInfo.status == "complete"){
        if(!tab.url.includes('https://www.youtube.com/watch')){
            return
        }
        chrome.tabs.sendMessage(tabId,{data: tab},function(response) {});
    }
});

我在网上搜索了一些解决方案,“向chrome.runtime.onmessage listener添加“return true””,但仍然显示错误,不知道该怎么办。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。