首页 > web前端 > js教程 > 如何检测 YouTube 页面导航以动态更新 Chrome 扩展程序的内容?

如何检测 YouTube 页面导航以动态更新 Chrome 扩展程序的内容?

Susan Sarandon
发布: 2024-12-06 13:41:10
原创
358 人浏览过

How Can I Detect YouTube Page Navigation to Dynamically Update a Chrome Extension's Content?

检测 YouTube 上的页面导航并无缝更改内容

您正在开发一个 Chrome 扩展程序来计算和显示视频的总长度YouTube 播放列表,但该脚本仅在页面刷新后运行。为了克服这一限制,无缝检测页面导航并相应地修改 DOM 至关重要。

页面转换的事件侦听器

YouTube 在导航期间不会重新加载页面,而是取代历史状态。要检测此问题,可以使用多种方法:

  • 后台页面:在后台页面或 MV3 Service Worker 中使用 webNavigation 或选项卡 API。
  • 包含 Navigatesuccess 事件的内容脚本: 此事件在现代版本中可用Chrome。
  • 包含 YouTube 自定义事件的内容脚本: YouTube 在导航过程中触发“yt-navigate-start”事件。

使用“yt-navigate” -start' 事件提供了一种更灵敏的方法来更改内容动态地。

实现

清单t.json:

{
  "matches": [ "*://*.youtube.com/*" ],
  "js": [ "content.js" ],
  "run_at": "document_start"
}
登录后复制

content.js:

document.addEventListener('yt-navigate-start', process);

if (document.body) process();
else document.addEventListener('DOMContentLoaded', process);
登录后复制

进程函数:

function process() {
  if (!location.pathname.startsWith('/playlist')) {
    return;
  }
  // Process logic to gather and display total playlist length here
}
登录后复制

通过利用 'yt-navigate-start' 事件并实现必要的脚本逻辑,您可以有效地检测和响应 YouTube 上的页面导航,无缝更新页面内容,而无需任何延迟或页面刷新。

以上是如何检测 YouTube 页面导航以动态更新 Chrome 扩展程序的内容?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板