如何阻止选项卡在 webNavigation.onBeforeNavigate 事件上打开页面?

2024-01-08

作为学习练习,我正在尝试构建一个示例 Chrome 扩展程序,以确保“灰名单”上的网站始终在隐身窗口中打开。

这是我已经取得的进展 - 使用当灰色列表页面即将导航时触发的 webNavigation.onBeforeNavigate 事件,我在隐身窗口中打开一个新选项卡,但现在需要阻止原始选项卡打开该页面。

清单.js:

"permissions": [
  "webNavigation",
  "tabs"
],

"background": {
  "scripts": [
    "background.js"
  ],
  "persistent": false
},

背景.js:

chrome.webNavigation.onBeforeNavigate.addListener(function(details) {
  chrome.tabs.get(details.tabId, function(tab) {
    if(!tab.incognito) {

      // Open the page in an incognito window
      chrome.windows.create({ url: details.url, incognito: true});

      // TODO stop non-incognito tab opening page!
    }
  });
}, {
  url: [
    { hostEquals: 'badsite.com' }
  ],
});

停止导航使用window.stop()通过在选项卡中注入内容脚本:

chrome.tabs.executeScript(details.tabId, {code: 'window.stop()'});

在manifest.json中添加权限,否则会看到错误后台页面控制台 https://stackoverflow.com/a/10258029/3959875:

"permissions": [
  "webNavigation",
  "tabs",
  "<all_urls>"
],
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何阻止选项卡在 webNavigation.onBeforeNavigate 事件上打开页面? 的相关文章

  • .crx 文件在 Chrome 中安装

    我刚刚创建了一个非常简单的 chrome 扩展 它运行良好 但是当我转换为 crx 文件并尝试用 chrome 打开它时 没有任何反应 我的chrome浏览器版本是19 0 1081 2 dev m 我的扩展使用jquery 1 4 2 m
  • Chrome 扩展程序端口错误:无法建立连接。接收端不存在

    当我尝试从弹出窗口向我的内容脚本发送消息时 出现此错误 我想做的是从 content js 获取当前选项卡的文档并将其发送到弹出窗口 我该如何修复这个错误 manifest version 2 name Chrome Snapshot de
  • 如何从扩展服务工作人员创建网络工作人员

    我将首先解释我想要实现的目标 我想创建一个扩展程序 可以在不同 chrome 窗口上的选项卡之间切换 并显示每个选项卡 X 时间 我发现了一个类似的扩展 但它是使用manifest V2完成的 并且不支持多个窗口 我想通过为每个窗口创建一个
  • 使用 page_action 时不出现弹出窗口

    我是 Google Chrome 扩展开发的新手 我有以下两个疑问 我使用时没有出现弹出窗口page action在manifest json中 但在我使用时出现browser action 我想知道为什么 还是我做错了 该图标也显示为非活
  • Dart chrome 扩展:监听 chrome api 事件

    为了更好地描述我的问题 我创建了一个用 Dart 编写的 chrome 扩展的小示例 您可以在以下位置查看代码或下载扩展程序Gist https gist github com andigehle a09ac9b765097bb84a65
  • 将 chrome api 与 React.js 结合使用

    我一直在尝试使用 React 制作一个简单的 Chrome 扩展 清单看起来像这样 name New Tab version 1 0 manifest version 2 description A minimalist replaceme
  • Google Chrome 扩展:如何通过弹出页面上的 iframe 查看后台页面?

    我已经尝试了一段时间了 但无法让它发挥作用 基本上 当启用扩展时 我想要一个持久页面 无论是否单击浏览器操作图标 它都将保持套接字连接 后台页面就是这样发挥作用的 现在 我希望此背景页面显示在弹出页面中 通过 iframe 或任何替代方案
  • 从扩展后台或弹出窗口发送消息到内容脚本不起作用

    我知道这个问题已经以不同的方式被反复问过 但我尝试过一遍所有的答案 希望我没有错过任何人 但没有一个对我有用 这是我的扩展程序的代码 显现 name test version 1 1 background scripts contextMe
  • 当选项卡重新加载(chrome 扩展)时,如何运行此脚本?

    所以我想在指定 URL 中重新加载选项卡时运行脚本 它几乎可以工作 但实际上 id 不能 这是我的清单文件 manifest version 2 name Sample Extension description Sample Chrome
  • Chrome 扩展:强制 popup.html 关闭

    我想知道是否可以强制 popup html 关闭 在弹出的 javascript 中 window close
  • DOM 解析器 Chrome 扩展内存泄漏

    问题 我开发了一个扩展程序 可以拦截 Web 请求 获取 Web 请求来源的 HTML 并对其进行处理 我使用 DOMParser 来解析 HTML 并且意识到 DOMParser 正在导致大量内存泄漏问题 最终导致 chrome 扩展崩溃
  • 是否可以在Chrome中查看jQuery添加的数据

    创建网站时我经常使用 jQuery data 向元素添加数据的函数 是否可以在 Chrome 中查看元素存储的所有数据 因此 当我检查一个元素时 它会在 Chrome 本身中显示数据 如果没有 是否可以编写一个插件来 扩展 到 Chrome
  • Chrome + 另一个进程:进程间通信比 HTTP/XHR 请求更快?

    我有一个进程 1 对视频流进行实时图像处理 我需要在 Chrome 中的 HTML 页面中渲染该视频 同一台计算机上的进程 2 在canvas or img or videoHTML5 元素 由于我有 1000x1000 像素 x 3 字节
  • 如果从后台发送响应,则执行内容脚本中的函数

    对于我的 Chrome 扩展 我尝试将选定的文本发布到 PHP 网页 本网站已解决的问题 Chrome 扩展 如何捕获选定的文本并将其发送到网络服务 https stackoverflow com questions 2626859 chr
  • 加密 Chrome 扩展程序?

    无论如何 要加密 Chrome 扩展程序 以免暴露源代码 您可以使用混淆器隐藏您的代码 市场上有很多可用的 像Google Closure编译器这样的工具很少 而且市场上有很多在线javascript ofuscators 你可以使用任何一
  • Google Hangouts 扩展程序如何创建面板窗口?

    The Doc http code google com chrome extensions windows html说如果你想创建一个面板窗口 你应该使用 chrome windows create type panel function
  • 在 Chrome 扩展中使用页面的 Angular JS

    我有一个 HTML 页面 其中有一些使用 Angular 配置的 DOM 现在我正在构建一个 chrome 扩展来修改文本框中的值 element value newValue不起作用 因为文本框是用 Angular 设计的 在阅读了一些资
  • Chrome 扩展 - 访问 iframe 元素

    我正在附加一个iframe到页面使用content script with src set to chrome extension getURL myPage 稍后在某些事件中 我想从框架中检索一些元素 我尝试了以下代码content sc
  • twitter bootstrap css 在 chrome 扩展中发生冲突

    我正在使用 bootstrap 来编写我正在编写的 chrome 扩展 当作为内容脚本导入时 CSS 似乎与我正在查看的许多网站发生冲突 即使在谷歌搜索结果页面中 想知道我是否可以做些什么来将其范围限制为我使用内容脚本注入的 dom 元素
  • 当控制台在页面加载时打开时,Chrome 速度变慢

    1 Load page with webgl fast 2 Open console 较慢 60fps 但峰值要低得多 3 Refresh with console open 页面开始缓慢下降 就像没有多少 fps 一样 4 close a

随机推荐

  • EditText 不会显示在 ListView 上方

    我有一个 ListView 活动 我希望在其上方显示一个 EditText 以及最终的一个按钮 我相信我的 xml 没问题 但由于某种原因 EditText 没有显示 ListView 占据了整个屏幕 我的 XML 如下所示
  • 全局程序集缓存中的 Microsoft.SqlServer.Types.dll?

    我目前正在努力解决由以下原因引起的部署问题Microsoft SqlServer Types及其关联的非托管库 SqlServerSpatial110 dll 两者都是为了微软 SQL Server 2012 这些问题很容易解决 只是典型的
  • 来自插入符号中的训练数据的 ROC 曲线

    使用R包插入符号 如何根据train 函数的交叉验证结果生成ROC曲线 比如说 我执行以下操作 data Sonar ctrl lt trainControl method cv summaryFunction twoClassSummar
  • 在调用者线程中捕获线程的异常?

    总的来说 我对 Python 和多线程编程非常陌生 基本上 我有一个脚本可以将文件复制到另一个位置 我希望将其放置在另一个线程中 以便我可以输出 表明脚本仍在运行 我遇到的问题是 如果无法复制文件 它将引发异常 如果在主线程中运行 这是可以
  • mod_rewrite - 将不存在的所有内容发送到index.php

    我想让我的 htaccess 文件重写 index php 文件中不存在的任何内容 例如 www example com category subcategory product1 将被重写为index php request catego
  • 恢复 SQL Server 2008 数据库后出现“无效的对象名称”

    我正在切换我的网络主机并备份我的数据库 由于我的新主机的一些限制 我无法恢复 bak 文件 必须发送给他们以便他们恢复它 一旦他们恢复了它 我运行了我的应用程序 我得到了这个 System Data SqlClient SqlExcepti
  • 从多通道 wav 文件中读取单个通道

    我需要从包含最多 12 个 11 1 格式 通道的 wav 文件中提取单个通道的样本 我知道在正常的立体声文件中样本是交错的 先向左 然后向右 就像这样 1st L 1st R 2nd L 2nd R 所以 要阅读左频道 我会这样做 for
  • Keras 语义分割加权损失像素图

    我正在尝试使用多类语义分割unet https arxiv org pdf 1505 04597 pdf设计 与unet论文类似 我想为超重边框创建一个损失函数 第5页 因此 我想为每个图像制作一个自定义损失图 其中对象之间的边界权重过大
  • 减少包含超过 500 个事务的数据表页面的加载时间

    有没有办法仅通过使用数据表来减少 IE 中页面的加载时间 如果我们使用服务器端分页和排序 我们是否也可以在服务器端进行快速搜索 并且仅呈现特定选项卡而不是整个页面
  • 反序列化嵌套 JSON

    我需要一些帮助 我正在尝试反序列化 Json 文件 然后将其添加到列表中 以便我可以将其放入 C 应用程序中的表中 我生成了部分代码 但没有生成嵌套区域 我想计算属性的总数 在 json 中显示为 features 然后我想列出每个属性的
  • 使无边框窗体可移动?

    有没有办法使没有边框 FormBorderStyle 设置为 none 的窗体在鼠标在窗体上单击时可移动 就像有边框一样 This http www codeproject com KB cs csharpmovewindow aspxCo
  • XML 中的 HTML。我应该使用 CDATA 还是编码 HTML [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在使用 XML 来共享 HTML 内容 AFAIK 我可以通过以下方式嵌入 HTML 对其进行编码 我不知道使用它是否完全安全 我必须再次解
  • 为什么允许对角线移动会使 A* 和曼哈顿距离不可接受?

    我对使用 A 和曼哈顿距离度量的网格中的对角线移动有点困惑 有人可以解释为什么使用对角线移动会使其不可接受吗 进行对角线运动不会找到更好的最佳解决方案 因为比上下左右移动更少的步骤即可达到目标状态 还是我错过了一些东西 正如烧杯的评论所指出
  • 使用 jQuery 在 Firefox 中获取自动计算边距

    通过下面的标记和 CSS 我尝试获取计算出的 shell 左边距 section class page title div class shell h5 class title Welcome h5 div section shell zo
  • 为什么案例类仅扩展 Product 而不是 Product1、Product2、...、ProductN?

    当我了解到案例类扩展了 Product 后 我 想知道为什么它们不扩展 ProductN 例如 给出如下代码 case class Foo a Int 我预计Foo 1 asInstanceOf Product1 Int 工作 但它没有 用
  • Bash,检查变量

    好的 所以我正在尝试运行一个脚本 如果用户输入y or Y 那么输出是YES但如果用户输入n or N那么输出是NO 这是我到目前为止所拥有的 read character if character y character Y then e
  • 使用 XSLT 从 XML 获取值并存储在变量中

  • 实体框架中的“喜欢”查询

    如何使用 edo 实体框架在 ASP net MVC 中进行通配符文本搜索 如 SQL like 语句 我以为这会起作用 var elig from e in documentDataModel Protocol Eligibility V
  • 使用 PowerShell 同步文件夹

    我尝试这个脚本来同步 2 个文件夹 Folder1Path C test1 Folder2Path C test2 folder1Files Get ChildItem Recurse path Folder1Path folder2Fil
  • 如何阻止选项卡在 webNavigation.onBeforeNavigate 事件上打开页面?

    作为学习练习 我正在尝试构建一个示例 Chrome 扩展程序 以确保 灰名单 上的网站始终在隐身窗口中打开 这是我已经取得的进展 使用当灰色列表页面即将导航时触发的 webNavigation onBeforeNavigate 事件 我在隐