当前位置: 首页 > news >正文

Chrome extension 谷歌浏览器插件 YouTube 监听地址栏 url 变化

一、前言

最近在开发一个 YouTube 视频 AI 总结的插件,过程中遇到了一个问题,每次用户点击当前页面其它视频时,组件并不会重新挂载,这就导致视频明明都变了,但是总结依旧还是上次的内容,很影响体验。

为此我查阅了不少解决办法,虽然都没用,不限于:

使用 onpopstate 监听路由变化

window.onpopstate = function(event) {console.log('URL changed:', window.location.href);
};

但此 api 只能监听路由前进和回退的变化,如果用户不是通过这两个按钮切换地址,onpopstate 依旧监听不到。

设置定时器,缓存对比当前 url 是否变化

实现过于丑陋直接没考虑,不然做个插件还要偷跑一个定时器一直检测地址,确实难以接受…

最终我在 issue 找到了答案,通过监听 yt-page-data-updated 完美解决了我的问题,实现如下:

  // 监听 youtube 视频变化window.addEventListener('yt-page-data-updated', function () {console.log('youtube 视频地址变化啦')});

通过上述代码,比如在 react 组件的 useEffect 监听,只要用户点击页面视频都能完美执行。

以上做个简单的记录,see you…

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Qt】Qt和JavaScript使用QWebChannel交互
  • PyTorch库学习之nn.ConvTranspose2d(模块)
  • 【每日一题】LeetCode 1652.拆炸弹(数组、滑动窗口)
  • [数据集][目标检测]轮胎检测数据集VOC+YOLO格式4629张1类别
  • Android架构组件中的MVVM应用
  • 进入docker的命令和docker命令的基础操作
  • python测试开发基础---线程和进程的概念
  • 鸿蒙轻内核M核源码分析系列三 数据结构-任务排序链表
  • 【软件设计】常用设计模式--工厂模式
  • 经验笔记:DevOps
  • Linux 硬件学习 s3c2440 arm920t蜂鸣器
  • C语言深度剖析--不定期更新的第二弹
  • 基于视觉-语言模型的机器人任务规划:ViLaIn框架解析
  • Avalonia 动画和视觉效果详解
  • http、https、https原理
  • 2017届校招提前批面试回顾
  • css布局,左右固定中间自适应实现
  • JSONP原理
  • mongodb--安装和初步使用教程
  • MySQL用户中的%到底包不包括localhost?
  • RxJS: 简单入门
  • vue-loader 源码解析系列之 selector
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 电商搜索引擎的架构设计和性能优化
  • 订阅Forge Viewer所有的事件
  • 关于for循环的简单归纳
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 跨域
  • 跳前端坑前,先看看这个!!
  • 微信公众号开发小记——5.python微信红包
  • 微信小程序填坑清单
  • 小程序 setData 学问多
  • 用mpvue开发微信小程序
  • 走向全栈之MongoDB的使用
  • 2017年360最后一道编程题
  • #QT(QCharts绘制曲线)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (2)MFC+openGL单文档框架glFrame
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (void) (_x == _y)的作用
  • (备份) esp32 GPIO
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)socket Aio demo
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net分布式压力测试工具(Beetle.DT)
  • .NET应用架构设计:原则、模式与实践 目录预览
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken