You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Chrome扩展中仅拦截含embed的YouTube URL?

Chrome扩展:仅拦截YouTube Embed链接的实现方案

需求说明

我正在开发Chrome扩展,当前background.js会对所有YouTube和Facebook的URL触发弹窗。现在需要调整为仅对包含"embed"的YouTube链接(如https://www.youtube.com/embed/video_id)执行动作,其余所有URL(包括普通YouTube链接、Facebook全量链接)保持原允许状态,不触发弹窗。现有代码如下:

原background.js

chrome.webNavigation.onCompleted.addListener(
  async () => {
    await chrome.action.openPopup();
  },
  { url: [
    { urlMatches: 'https://www.youtube.com/*' },
    { urlMatches: 'https://www.facebook.com/*' },
  ] },
);

原manifest.json

{
  "name": "Test Extension",
  "description": "My App Details",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": ["webNavigation"],
  "action": { "default_popup": "popup.html" },
  "background": { "service_worker": "background.js" }
}

修改方案

只需调整chrome.webNavigation.onCompleted的URL匹配规则,精准定位到YouTube的Embed链接即可:

修改后的background.js

chrome.webNavigation.onCompleted.addListener(
  async () => {
    await chrome.action.openPopup();
  },
  { url: [
    // 仅匹配YouTube的Embed链接
    { urlMatches: 'https://www.youtube.com/embed/*' },
    // 若需保留原Facebook全量URL的触发逻辑,保留此行;不需要则删除
    // { urlMatches: 'https://www.facebook.com/*' },
  ] },
);

关键说明

  • urlMatches: 'https://www.youtube.com/embed/*' 会精准匹配所有以https://www.youtube.com/embed/开头的链接,完全覆盖需要拦截的Embed类型视频地址
  • 若无需再对Facebook URL触发弹窗动作,直接删除对应的urlMatches配置项即可;如需保留原Facebook的逻辑,保留该行即可

manifest.json无需修改,保持原有配置即可正常运行。

内容的提问来源于stack exchange,提问作者Nancy Moore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 18:22:42