浏览器插件在content_script和top窗口之间进行消息通信

为什么要进行消息通信?

        content_script和top窗口之间除了DOM共享之外,window对象是不共享的。如果content_script需要获得top窗口中window对象的数据,就需要使用到通信。反之,也是相同的情况。

1、自定义监听事件(推荐)

// 广播:浏览器原生网页(top)位置进行消息广播

// 发送广播: top
let customEvent = new CustomEvent('my-message-type', { details: 'this is a message!'})
window.dispatchEvent(customEvent)

// 消息监听:content_script内容脚本进行监听
 window.addEventListener('my-message-type', (e) => {
   console.log(e)
   console.log(e?.details) // this is a message!
   // do something
 })

2、监听广播事件


// 发送广播消息:top
window.postMessage({'type': 'my-message-type', 'data': 'message!'}, '*')

// 监听消息:content_script
window.addEventListener('message', (e) => {
  console.log('e:', e)
  console.log('e.data:', e?.data)
  console.log('e.data.type:', e?.data?.type)
  console.log('e.data.data:', e?.data?.data)

  if (e?.data?.type === 'my-message-type') {
    // do something
  }
})

不推荐使用window.postMessage进行消息广播:
来源CSDN论坛评论:https://blog.csdn.net/dongzi_yu/article/details/128441466#comments_28957465
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/156761.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

装机必备!这5款免费软件,你值得拥有!

​ 目前win7渐渐退出视野,大部分人都开始使用win10了,笔者在日常的工作和使用中,为了能够让效率的大提升,下载了不少软件,以下的软件都是个人认为装机必备,而且都是可以免费下载。 1.屏幕亮度调节——Twin…

运维知识点-Windows操作系统cmd/Dos批处理命令与脚本手册bat

Windows操作系统命令与脚本总结 管理员权限:添加账号并加入管理员组添加用户至远程桌面组允许修改密码 防火墙 :关闭防火墙 匹配出注册表信息中的软件:获取完整补丁信息(比systeminfo全):获取系统和版本信息显示本地或…

敲敲云与简道云流程设计引擎对比:选择更适合您的产品

在当今数字化时代,流程管理和自动化变得越来越重要。作为APaaS服务的两个知名产品,敲敲云和简道云都提供了流程设计引擎,帮助企业实现高效的流程管理。然而,在比较两者之后,您可能会发现敲敲云在多个方面具有优势&…

YOLOV8目标识别——详细记录从环境配置、自定义数据、模型训练到模型推理部署

一、概述 Yolov8建立在Yolo系列历史版本的基础上,并引入了新的功能和改进点,以进一步提升性能和灵活性。Yolov8具有以下特点: 高效性:Yolov8采用了新的骨干网络、新的Ancher-Free检测头和新的损失函数,可在CPU到GPU的…

【JVM】Java虚拟机

本文主要介绍了JVM的内存区域划分,类加载机制以及垃圾回收机制. 其实JVM的初心,就是让java程序员不需要去了解JVM的细节,它把很多工作内部封装好了.但是学习JVM的内部原理有利于我们深入理解学习Java. 1.JVM的内存区域划分 JVM其实是一个java进程 ; 每个java进程,就是一个jvm…

芸鹰蓬飞:抖店服务分怎么快速升分?

在这个平台上,抖店服务分数的高低直接关系到商家在抖音平台上的曝光和信任度。那么,如何快速提升抖店服务分,成为了广大商家亟需解决的问题。本文将从多个角度,深入探讨提升抖店服务分的有效方法。 一、了解抖店服务分的评估标准 …

茶百道:门店数量狂飙,食品安全问题成最大绊脚石

茶百道近日传出即将在香港进行非交易路演,计划在今年内登陆港交所上市,消息一出引发市场广泛关注。然而,茶百道的上市能否成为其自救的解药,还存在诸多质疑。 茶百道的惊人营收增长背后,门店数量的迅速扩张功不可没。在…

⑩② 【MySQL索引】详解MySQL`索引`:结构、分类、性能分析、设计及使用规则。

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ MySQL索引 ⑩② 【MySQL索引】1. 索引2. 索引的…

Wordpress多语言插件:WPML插件使用教程,最佳的多语言建站方案

今天小编讲的是另外一款多语言插件WPML。相比Gtranslate采用的是机器翻译,难免存在翻译不准确,词不达意的情况,WPML可以支持人工翻译内容添加。 事先说明一点:用插件实现多语言较为方便,但此方法做出的多语言网站SEO性能一般,只建议展示站使用,如果想要SEO营销型多语言网…

猫罐头哪个牌子好?盘点十大猫罐头品牌排行榜!

作为一个多猫家庭的铲屎官,我之前一直购买性价比较高的德国进口猫罐头。然而,近来进口主食罐的频繁涨价让我不得不开始关注国产主食罐。在这篇文章中,我想与大家分享一些口碑较好的国产猫罐头品牌,希望能对你的选购决策提供一些参…

image is being used by stopped container 7d2ff8620f3b 删除镜像失败怎么办

这个错误信息表明,镜像 55860ee0cd73 正被一个已停止的容器 7d2ff8620f3b 使用,因此无法正常删除。要解决这个问题,你有两个选择: 删除使用该镜像的容器:首先删除引用该镜像的容器,然后再删除镜像。这可以通…

素质教育正式提出30周年 提高实际应用能力成为教育新选择

至2023年“素质教育”已正式提出30周年。在实施期间,素质教育取得了显著成就:不仅提高了学生的综合素质和竞争力,培养了学生的创新能力、实践能力等,同时也改变了应试导向和知识灌输的教育模式,建立了以人为本、以学为主的教育理念。 教育观念发生扭转,教育目标也随之改变。学…

猫罐头哪个牌子好?分享十款猫罐头品牌排行榜!

选择适合的猫罐头非常重要,好的猫罐头应该提供丰富的营养、适量的水分、口感良好,并且易于消化吸收。然而,如果选择不当,可能无法达到期望的效果,甚至可能对猫咪产生负面影响。 作为一位经营猫咖5年的老板,…

非 dict 字典类型的处理

在Python的requests库中,使用data参数发送POST请求时,如果传入的数据对象不是直接继承自dict的字典类型,就会抛出TypeError异常。 Python的requests库是一个广泛用于HTTP请求的库,它提供了丰富的功能来发送和处理HTTP请求。其中&…

原论文一比一复现 | 更换 RT-DETR 主干网络为 【VGG13】【VGG16】【VGG19】| 对比实验必备

本专栏内容均为博主独家全网首发,未经授权,任何形式的复制、转载、洗稿或传播行为均属违法侵权行为,一经发现将采取法律手段维护合法权益。我们对所有未经授权传播行为保留追究责任的权利。请尊重原创,支持创作者的努力,共同维护网络知识产权。 论文地址:https://arxiv.o…

BUG 随想录 - Java: 程序包 com.example.xxx 不存在

目录 一、BUG 复现 二、解决问题 一、BUG 复现 背景:通过 feign 的最佳实践,将 feign 单独提取成一个微服务,接着在需要远程调用的微服务中引入 feign 模块,并在启动类通过 EnableFeignClients 声明指定的 Feign 客户端. 出现问题…

搭建帮助中心系统!客户服务一站式解决方案

随着企业规模的扩大和客户需求的增加,提供高效、便捷的客户服务变得越来越重要。为了满足客户的需求,许多企业开始搭建帮助中心系统,为客户提供一站式的问题解决方案。接下来就跟大家介绍一下帮助中心系统,以及如何实现一流的客户…

图解分布式事务实现原理(三)

参考 本文参考https://zhuanlan.zhihu.com/p/650791238从零到一搭建 TCC 分布式事务框架,并在小徐的基础上增加个人见解笔记。 项目地址:https://github.com/xiaoxuxiansheng/gotcc 图解分布式事务实现原理(一):https…

云骑士数据恢复软件会对硬盘造成伤害吗?

当今时代,数据已经成为我们生活的重要组成部分,而硬盘又是存储数据的主要设备之一。然而,由于各种原因,我们的数据很容易丢失。是的,我们可以通过数据恢复软件来找回丢失的数据,但是这个过程是否会对硬盘造…

系列五、GC垃圾回收【四大垃圾算法-复制算法】

一、堆的内存组成 二、复制算法 2.1、发生位置 复制算法主要发生在新生代,发生在新生代的垃圾回收也被叫做Minor GC。 2.2、 Minor GC的过程 复制>清空》交换 1、eden、from区中的对象复制到to区,年龄1 首先,当eden区满的时候会触发第一…