Chrome 扩展 background 与content_script 之间通信

content_script 向 background 发消息要用:chrome.runtime.sendMessage

复制代码
        chrome.runtime.sendMessage({event: "xhr", data:option }, function (res) { 
            //option.onload(res);
            //console.log(res);
            if (res.event == "xhr" && !res.err){
                option.onload(res);
            }
        });

background 接收消息:chrome.runtime.onMessage.addListener

javascript 复制代码
chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) {
 if (message.event == "copy") {
       //alert("copy detected");
       //return true;
 }

    sendResponse({});
    return true; 
});

background 向 content_script 发消息要用:chrome.tabs.sendMessage

javascript 复制代码
            chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {
              if (tabs && tabs.length > 0) {
                const activeTab = tabs[0];
                console.log('当前活动标签页的是:', activeTab);
                try {
                    chrome.tabs.sendMessage(activeTab.id, {'evt':'mediaUrl','data':mediaUrl }, function (res) { 
                        console.log(res);
                    });
                } catch (error) {
                    console.error(error.message);
                }
              }
            });

content_script 接收消息用:chrome.runtime.onMessage.addListener

和background中是一样的,注意其中的 sendResponse({});

这一句很关键,接收到了就要给一个回应;

相关推荐
程序员-周李斌1 分钟前
CopyOnWriteArrayList 源码分析
java·开发语言·哈希算法·散列表
chilavert3184 分钟前
技术演进中的开发沉思-228 Ajax: Aptana开发
前端·javascript·ajax
晚风(●•σ )6 分钟前
C++语言程序设计——【算法竞赛常用知识点】
开发语言·c++·算法
Byron Loong9 分钟前
【C#】离线场景检测系统时间回拨
开发语言·c#
kwg12610 分钟前
Dify二次开发-AI 应用端反馈指令接收(AI 应用端 → Dify)
前端·数据库·人工智能
哟哟耶耶11 分钟前
knowledge-scss学习
前端·学习·scss
丫丫72373412 分钟前
Three.js 材质系统总结笔记
javascript·笔记·材质
坚定信念,勇往无前12 分钟前
springboot +mongodb游标分页,性能好。前端存储游标历史
前端·spring boot·mongodb
GIS遥遥13 分钟前
2025Cesium进阶教程(5)| webgis智慧城市开发,大屏可视化行政区高亮
javascript·cesium·gis开发·三维gis·webgis开发
却话巴山夜雨时i14 分钟前
295. 数据流的中位数【困难】
java·服务器·前端