如何针对 URL 字符串测试 URL 匹配模式

2024-04-06

我可以使用匹配模式获取浏览器选项卡

browser.tabs.query({ url: 'https://mozilla.org/*/b/*/' })

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns

在选项卡的更新事件期间,我可以获得选项卡 ID 和 url,但如何测试该选项卡是否与我的原始匹配模式匹配?

browser.tabs.onUpdated.addListener(event => {
    browser.tabs.get(event).then((tab) => {
        if (tab.status === 'complete') {
            if (?? tab.url matches 'https://mozilla.org/*/b/*/') {
                console.log("Do something")
            }
        }
    })
});

一个简单的自写星号匹配器是:

function match(pattern, url) {
  pattern = pattern.split("/");
  url = url.split("/");
  
  while(url.length) {
   const p = pattern.shift();
   if(p !== url.shift() && p !== "*")
    return false;
  }
  return true;
}

console.log(
  match("https://example.com/*/test/", "https://example.com/a/test/"),
  match("https://example.com/*/test/", "https://example.com/a/b/")
);
     
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何针对 URL 字符串测试 URL 匹配模式 的相关文章

  • 跨域XMLHttp请求

    这是我的情况 我有一台 Web 服务器机器 一台客户端机器和第三台运行一些侦听 XMLHttpRequest 的程序的机器 客户端从客户端计算机访问网络服务器 进行一些更改 然后单击 保存 此时 数据被发送回网络服务器和第三台机器 所有这些
  • pubnub 和 head.js

    有没有人成功整合过pubnub http www pubnub com 和 head js 正确吗 Pubnub http www pubnub com 希望我将他们的脚本放在页面底部并带有 div 就在它前面的标签 这可以确保在最后调用
  • 通过pm2运行node.js,但经常重新启动:通过信号[SIGINT]以代码[0]退出

    我试图在我的系统上运行 node js 但遇到了这个问题 2016 06 01 20 46 28 App app with id 13 and pid 12633 exited with code 0 via signal SIGINT 2
  • Javascript DOM setAttribute 在函数调用中不起作用

    我有一个带有输入元素的 HTML 文件 我希望向其中添加一个名为 valid fieldset011 的新属性 该属性用作 AngularJS 验证器的链接 输入元素具有属性 id fieldset011 如果我使用以下脚本 包含在脚本标签
  • Angular 2 Material 2 日期选择器日期格式

    我不知道如何更改材料2日期选择器的日期格式 我已阅读文档 但我不明白我实际上需要做什么 datepicker默认提供的输出日期格式为f e 6 9 2017 我想要实现的目标是将格式更改为类似的格式9 Jun 2017或任何其他 文档htt
  • 在 javascript、jQuery 或 css 中,如何让 div 或 iframe 展开以填充其余空间

    我有三个 iframe 我将顶部 iframe 设置为 50px 高度 将底部 iframe 设置为 50px 但我希望中间 iframe 扩展以填充其余空间 有没有一种技术可以用来对任何窗口屏幕尺寸执行此操作 谢谢 example
  • html 表格单元格的条件格式

    是否有现成的解决方案可以对 HTML 表格进行条件格式设置 通过条件格式 我更感兴趣的是根据该列或其他列 在同一个表中 的值 数字 将不同的颜色作为单元格背景 类似于我们在 Excel 条件格式 gt 色阶 gt 红黄绿中的内容 我想在通过
  • 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链

    所以我在 V8 控制台上玩了很多 我做到了 Object getOwnPropertyNames 我期望得到 结果 然而 length 所以这意味着不是成为原型链的一部分 length是所有人的成员财产Array对象 这是一个错误 还是有任
  • 无法实例化模块 [$injector:unpr] 未知提供程序:$routeProvider

    我从 AngularJS 升级时收到此错误1 0 7 to 1 2 0rc1 ngRoute 模块不再是核心的一部分angular js文件 如果您继续使用 routeProvider 那么您现在需要包括angular route js在你
  • 使用文件 API 将资源加载到 Three.js 中

    我想创建导入 3D 模型以在浏览器中查看的功能 方法是使用File API http www html5rocks com en tutorials file dndfiles Three js 加载器在我托管的文件上运行良好 我的理解是加
  • jQM / jquery-collagePlus 使用问题

    我正在使用 jQM 构建应用程序 并且尝试使用 jquery collagePlus http ed lea github io jquery collagePlus http ed lea github io jquery collage
  • 在 Fabric.js 中按宽度/高度在另一个画布对象内居中和缩放画布对象

    Goal 将一个对象 水平和垂直 置于另一个对象 矩形或组 的中心canvas via Fabric js或者通过Javascript保持原始对象的长宽比相同 但也不超过父对象的宽度 高度比例 父对象 矩形或组 不会居中于canvas元素
  • 如何检测元素内容何时发生变化

    我正在寻找一种方法来监视元素内动态填充 无页面重新加载 内容 以便我可以将类添加到另一个元素 到目前为止我有这个 HTML div class message container div class messages error span
  • Node.js 未处理的“错误”事件

    我编写了一个简单的代码并将其保存在文件 try js 中 var http require http var makeRequest function message var options host localhost port 8080
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • JavaScript 数组扩展语法的时间复杂度是多少?

    我想知道在 JavaScript 中使用数组扩展的时间复杂度是多少 是线性 O n 还是常数 O 1 下面的语法示例 let lar Math max nums 传播称为 Symbol iterator 有关对象的属性 对于数组 这将迭代数
  • JavaScript:测试与执行

    我想知道检查字符串 例如邮件 密码等 的最佳方法是什么 i exec a vs i test a exec返回值 test true test 1 way var mail req body mail if check mail exec
  • Flowtype 属性“msg”缺失为 null 或未定义

    我发现 Flow 很难用 我明白那个Array find可以返回或未定义 因此 通过阅读以下内容 github Array find on Array 引发 https github com facebook flow issues 351
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu
  • 无法使用 HTML 设置未定义 jQuery UI 自动完成的属性“_renderItem”

    我使用以下代码将 jQuery UI 自动完成项呈现为 HTML 这些项目在自动完成控件中正确呈现 但我不断收到此 JavaScript 错误并且无法移动过去 Firefox 无法转换 JavaScript 参数 Chrome 无法设置未定

随机推荐

  • 异步加载车把模板

    我正在尝试编写一个函数 该函数将为我提供一个已编译的车把模板 我将所有模板都放在单独的文件中 使用 ajax 调用来获取模板并编译它以供使用 但我需要使用承诺 以便我可以实际使用它 function getTemplate name get
  • Python,OpenCV:增加图像亮度而不溢出UINT8数组

    我正在尝试增加灰度图像的亮度 cv2 imread 返回一个 numpy 数组 我正在向数组的每个元素添加整数值 从理论上讲 这会增加它们中的每一个 之后我就可以将上限设置为 255 并获得具有更高亮度的图像 这是代码 grey cv2 i
  • 连接建立后如何从服务器(使用连接列表)向客户端发送命令?

    我有这两个类 它们是我的服务器应用程序 桌面 的一部分 需要在建立连接后将命令发送回客户端 当我尝试这样做时 clients i Send info the Send 例行公事 的监听器 cs 可以访问 但我有以下语法错误 怎么解决这个问题
  • CSS 关键帧动画与平移变换在 IE 10 和 Firefox 中捕捉到整个像素

    看起来 IE 10 和 Firefox 在使用 css 关键帧动画中的平移 2d 变换对元素的位置进行动画处理时 都会将元素捕捉到整个像素 Chrome 和 Safari 没有 看起来a lot制作微妙运动动画时效果更好 动画是通过以下方式
  • 2 个不同长度的排序数组的中值

    如何找到长度分别为 m 和 n 的 2 个已排序数组 A 和 B 的中位数 我已经搜索过 但大多数算法都假设两个数组的大小相同 我想知道如果 m n 我们怎样才能找到中位数 考虑例子 A 1 3 5 7 11 15 其中 m 6 B 2 4
  • 在 AngularJS 中处理来自代理的 HTTP 302 响应

    我有一个反向代理 可以检查多个应用程序的全局身份验证 当用户断开连接但仍尝试使用我的应用程序时 代理会发送 302 响应 HTTP 1 1 302 Found Date Wed 11 Sep 2013 09 05 34 GMT Cache
  • 生成递归目录搜索的 XML 映射

    我正在阅读一个列表 其中某些组件下有大量档案 例如 component1 filelocation1 a11 ear component1 filelocation1 a12 ear component2 filelocation2 a2
  • 如何在Rails 3.2 erb中使用eval在运行时执行存储在字符串中的视图代码?

    我们想要做的是存储一大块erb代码在一个string然后在运行时执行代码 这是我们所做的测试 从工作的 erb 文件中取出一段代码 使用 eval 重写 erb 文件 这是取出的 erb 代码块 tr th th th th th th t
  • [Laravel]:SQLSTATE[3F000]:模式名称无效

    构建 Laravel 项目 v 5 4 当我运行时php artisan migrate我收到以下错误消息 Illuminate Database QueryException SQLSTATE 3F000 Invalid schema n
  • Mockk-spyk 模拟方法仅一次

    I have spyk from mockk图书馆 my spyk My 后来我嘲笑其中一种方法返回类似的内容 every my method someString returns something 我正在创建这个spyk in a Be
  • 获取具有默认值的参数列表

    我使用 ALL ARGUMENTS 来获取 oracle 10g 中的参数列表 但我找不到参数是否有默认值 我怎样才能做到呢 您可能需要在 10g 中采用 plsql 编程 如下面的代码示例所示 从某种意义上说 这个解决方案肯定是蛮力的 因
  • 如何在 javascript Chart.js 中仅显示整数

    我想在java脚本库创建的图表中仅显示整数而不是浮点数Chartjs org http www chartjs org docs 这是示例的链接graph http qlu in 0o3CTx stats 我是新手 有人可以帮我配置这个吗
  • THREE.JS 加载 STL 网格数组

    因此 我有一个数据库 其中包含文件引用列以及对其所需的子 STL 文件的任何引用 我可以将一两个模型加载到 THREE js 查看器中 因此所有这些都可以正常工作 但是当我加载四个左右的数组时 事情开始变得毛茸茸的 分配的网格 ID 开始变
  • Android 设计模式,用于 UI 和非 UI 模式的后台操作

    我有一个后台操作 我希望能够以两种模式运行 UI mode 由用户启动 在整个生命周期内为用户提供操作状态的精确反馈 非用户界面模式 由AlarmManager并在其生命周期结束时向用户提供操作摘要 自然的设计选择只为实现UI mode将会
  • 如何使用 Inno Setup 连接到 MS SQL Server?

    我想在安装过程中连接到 MS SQL Server 2008 有一个类似的问题 https stackoverflow com q 2171199 960757 它提供了一个解决方案 使用isql exe工具 与 SQL Server 20
  • MS Dynamics CRM 2012:脚本编辑器增强功能

    我一直在尝试查找有关下一个 Microsoft Dynamics CRM 产品 2012 6 的更多信息 我主要对脚本编辑器的任何增强感兴趣 版本 4 和版本 5 2011 之间有很大的改进 最受我欢迎的是跨表单 字段事件共享脚本函数的能力
  • HBase单调递增键的行键设计

    我有一个 HBase 表 我在其中编写行键 例如
  • Tailwind 全局使用本地文件中的字体

    目前我正在我的风格标签中这样做 import url https fonts googleapis com css family Roboto display swap font family Roboto sans serif 但我下载了
  • 为什么这个函数会产生错误的值? [复制]

    这个问题在这里已经有答案了 我有一个简单的函数模板来计算容器的平均值 template
  • 如何针对 URL 字符串测试 URL 匹配模式

    我可以使用匹配模式获取浏览器选项卡 browser tabs query url https mozilla org b https developer mozilla org en US docs Mozilla Add ons WebE