问题标签 [web-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8 浏览

web-extension - WebExtensions 中是否有 port.postMessage() 的回调

有没有办法等到接收方处理使用发送的消息port.postMessage(message)?我希望像回调这样的东西作为第二个参数传递,类似于chrome.scripting.executeScript(injection, callback)

0 投票
0 回答
42 浏览

google-chrome - Cypress:如何在 cypress 中测试 webextension api

我们在 cypress 推出的 chrome 浏览器上安装了我们的扩展程序。由于浏览器中的 url 是集成测试列表中的一个(以红色突出显示),因此无法模拟 browser.tab.onUpdate 或 browser.webRequest 等 webExtension api。选择器游乐场不支持在其上安装扩展程序来测试这些事件. 例如,我们扩展程序的后台脚本中的这样的监听器在此处输入图像描述

我们如何在 cypress 启动的浏览器上模拟此类事件?

0 投票
0 回答
67 浏览

javascript - 如何通过javascript获取网站的标志和名称

我正在开发浏览器 WebExtension,我的扩展程序的一个功能是获取用户正在浏览的网站的图标图像和名称。我找到了一些获取图标的方法,例如

  1. https://<某个域>/favicon.ico
  2. 标头中的链接和元数据,例如<meta property="og:image" content="<some image link>" />, <link rel="apple-touch-icon" href="<some image link>"

至于网站名称,我可以使用

  1. 文件名
  2. 标头中的元数据,例如<meta name="application-name" content="some name">
  3. 二级域名

但是,这还不够,我发现在很多网站上结果并不令人满意。

我想知道是否有一些启发式或例程的列表可以涵盖大多数情况。

或者是否有任何建议或更好的方法来获取网站的徽标/图标和名称?

谢谢

0 投票
0 回答
34 浏览

google-chrome - 'tabs.onUpdated' 事件何时触发其他 url 更改的场景

在我们的扩展代码中,我在 tabs.onUpdated ( chrome.tabs.onUpdated ) 中添加了一个监听器

在按钮单击扩展内部的交互之一中,由于 changeInfo.status 进入 --> 'loading' --> 'complete' 而触发此事件

状态进入加载状态可能会发生什么?url 没有变化,这导致对添加的侦听器进行不必要的调用

0 投票
0 回答
21 浏览

javascript - 内容脚本在页面重新加载之前不会运行

尽管这里有很多类似的问题,但我无法用任何公认的解决方案来解决我的问题,所以我正在创建一个新问题。

我有一个内容脚本,可以为Jira Issue添加一些功能。但是,当从Filter Results Page导航到 Jira 问题时,内容脚本在我手动重新加载页面之前不会运行。

到目前为止我已经尝试过:

  1. 添加webNavigation侦听器(具有清单权限),但是当从过滤器页面单击 Jira 问题链接时,它们似乎都没有触发。
  1. "all_frames": true添加到 manifest.json 中,但这也没有使它起作用:
  1. 在内容脚本中监听window.onpopstate事件。虽然它检测到我何时单击浏览器中的“后退”和“前进”箭头,但当我单击“过滤结果页面”内的链接时它不会触发。

如何在无需手动重新加载页面的情况下运行此内容脚本?