问题标签 [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.
javascript - 每次更改 crom 标签时,Chrome 扩展 postMessage 从后台脚本到内容脚本
再会。
我在将消息从后台脚本发送到内容脚本时遇到问题。每次用户在浏览器选项卡之间切换时,我都会尝试发送消息。
我得到这个错误。
Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
下面是扩展程序本身的代码。
背景脚本:
内容脚本:
显现:
请告诉我我做错了什么?如何修复或跟踪此错误?
google-chrome-extension - documentUrlPatterns 不尊重路径名
在创建上下文菜单项时,我在 Safari 上尝试documentUrlPatterns
与我的 Web 扩展一起使用时遇到了一些问题。
例子:
browser.contextMenus.create({id: "12354", title: "Test01",documentUrlPatterns:["https://www.linkedin.com/feed/"]});
在documentUrlPatterns
任何具有显式pathname
(如上所示)的网站上使用时,不会为匹配文档 url 创建上下文菜单项。
使用上面的代码,我希望看到一个https://www.linkedin.com/feed/
带有 title的上下文菜单项Test01
,但什么也没有出现。如前所述,似乎任何明确的路径名,例如/feed/
或/someother/page/
在任何网站上都存在此问题。
我对匹配工作原理的理解使我认为显式路径名在模式中是有效的,但也许我遗漏了一些东西。
如果我删除最后一个斜杠/
,上下文菜单项似乎按预期创建。
documentUrlPatterns
我的预期结果是否有效,或者我所缺少的工作方式有什么独特之处?
上面的代码似乎在 Chrome 和 Firefox 中按预期工作。我想这可能是一个与 Apple Safari 相关的错误,但在报告它之前,我很好奇是否有我遗漏的东西。
google-chrome-extension - 适用于 Chrome、Firefox、Safari 标准参考和工具的 Web 扩展(浏览器插件)(2021 年)
据我所知,我们今天使用的浏览器插件的正确名称实际上称为“Web 扩展”。在每个浏览器都有自己的 API 之前,Chrome 和 Firefox 都同意了,现在是 Safari(2021 年 macOS 11 的 v14)见
- https://developer.apple.com/documentation/safariservices/safari_web_extensions
- https://sixcolors.com/post/2021/01/safari-14-added-webextensions-support-so-where-are-the-extensions/
但是,我找不到在所有 3 种主要浏览器中都可以使用的确切标准参考和示例。
或许我们可以深入挖掘很多相关链接
- https://en.wikipedia.org/wiki/Browser_extension
- https://extensionworkshop.com/documentation/develop/porting-a-google-chrome-extension/
- https://developer.chrome.com/docs/extensions/reference/
但是是否有工具/库可以跟踪兼容性并确保
请确认要使用哪些术语,指出将强制兼容性的规范和工具。
xcode - 从 git repo 转换 safari web 扩展不成功
我正在尝试将 chrome web 扩展转换为 safari 扩展。我的环境是带有 XCode 12.5.1 的 Big Sur VM。
当我克隆扩展程序的 git repo ( https://github.com/toobeeh/skribbltypo ) 并尝试使用“xcrun safari-web-extension-converter skribbltypo” (从父文件夹) 转换它时,它只会吐出错误“无法在 file:///... 解析清单”(路径正确指向清单所在的 repo 文件夹)。
网络研究表明,问题可能是文件夹是 zip(我尝试了多种方法将 repo 下载为 zip、解压缩、解压缩签名的 crx ......)或路径不正确(我还拖了文件夹到终端,并且 file:/// 路径是正确的),但没有成功。
这是否与我正在运行的虚拟机有关?我不敢相信我在很多方面都做错了。如果有人可以尝试这个过程,我会很高兴。提前致谢。
ios - iOS Safari Web 扩展 - 当我们添加新的所需权限时,当前用户会发生什么
我正在开发 iOS Safari Web 扩展,我想添加新的必需权限。
但是,我找不到任何地方解释当前用户会发生什么。
扩展会继续像以前一样工作吗?
在用户再次激活之前,扩展程序是否会被禁用?
从我们的测试来看,似乎一切都按预期工作。
我们要添加 nativeMessaging 权限。
有谁知道Apple是否在任何地方都有这些信息?或者会发生什么?
macos - 我可以直接从 Safari Web Extension 的后台页面向 Native App 发送消息吗?
我正在开发一个 Safari 网络扩展。我需要将数据从 Web Extension 的后台页面发送到本机应用程序。本机应用程序获取此消息并使用 USB 密钥对其进行签名以生成签名值。然后本机应用程序将签名值发送回后台页面。 向 Web 扩展的本机应用程序发送消息
首先,我在 background.js 中创建一个端口
在该端口上添加一个监听器以接收来自 Native App 的消息,如下:
在我的本机应用程序中,我可以使用以下代码向后台页面发送消息:
但是如何从后台页面向 Native App 发送消息?在“Messaging a Web Extension's Native App”演示中,消息通过以下代码发送:
但是没有代码显示如何在本机应用程序中接收此消息。
在原生应用程序中,如何从后台页面接收“postMessage”发送的消息?如果能提供object-C的demo,将不胜感激。谢谢!
firefox - 如何为需要 cookie/本地存储的 Firefox Web 扩展指定多帐户容器?
情况
我有一个可在基于 Chromium 的浏览器和 Firefox 中运行的 Web 扩展。该扩展依赖于来自特定网站的身份验证。为此,它会访问该特定网站的 cookie 或本地存储。
在 Firefox 中,当我使用多帐户容器时,该扩展程序不再工作,因为它无法读取我登录的特定网站的 cookie/本地存储。这可能是因为为扩展分配了另一个技术或匿名容器,该容器与网站分配的不同。
问题
- 作为最终用户,我可以在没有源代码的情况下更改 Web 扩展的分配容器吗?
- 如果没有,Web 扩展的开发人员是否可以包括与 Multi-Account-Containers 的兼容性以及如何实现?
javascript - Web 扩展的 Service Worker 的生命周期和范围是多少
我了解服务工作者的 PWA 范围取决于其在 Web 应用程序存储库中的位置,并且它控制该范围内的页面。但是,Web 扩展中服务工作者的范围是什么,它控制哪些页面?这是如何规定的?
使用清单版本 2 创建扩展时,您可以使用后台脚本,例如,可以在任何网页上生成上下文菜单,因此我理解在这种情况下,范围是任何网页。所以,我的问题是:使用清单版本 3 的 Web 扩展的服务工作者的范围如何?
google-chrome-extension - (Chrome 扩展程序)创建新标签时如何专注于多功能框?
我正在制作一个 chrome 扩展,每次打开新标签时都会将您重定向到特定的 url。我正在使用的代码在下面。然而,每当我打开一个新标签时,它确实可以将我重定向到 url,但它并没有突出显示多功能框,这真的很烦人!这意味着做我的搜索真的很令人沮丧,因为这个地址栏没有突出显示。我知道 Control + L 是一个选项,但我们都习惯于不这样做。
当我打开一个新标签时,我可以看到多功能框被突出显示,但之后它就消失了。有没有办法让这个地址栏在重定向之前、期间和之后突出显示?
我知道这是可能的,因为这个扩展,Tab for a Cause将您重定向到他们的自定义 url ,同时仍然保持 onmibox 突出显示!
先感谢您!
我正在使用清单版本 2。
manifest.json
my.html
code.js
javascript - 如何使用一些 href URL 和搜索 cookie/参数重定向到一个新选项卡,它可以提供一些值,如 ID 或帐号?
**示例:**构建一个扩展程序,当单击按钮或链接到 URL 时重定向到新选项卡,并带有一些搜索 cookie 或参数,这些 cookie 或参数可以在 URL 栏中提供值,如 id 或帐号。
像这样的东西:1)https://example.com/index?id=1
2)https://example.com/index?account_no=2220