火狐WebExtension APIs "浏览器未定义"
ReferenceError: 浏览器未定义 无法通过控制台在页面上找到 WebExtension API.在后台脚本中,所有 API 工作正常. https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs 如何通过页面上的 WebExtension API 发送/接收消息 (Firefox 51). 解决方案 这是一个在您单击按钮时打印通知的示例(它适用于我). 不要忘记在清单中声明您需要的权限. 免责声明:Firefox 似乎会为浏览器变量抛出错误,但它确实有效. manifest.json { "manifest_version": 2, "name": "webextension-example", "version": "0.1", "description": "An exam
110 2022-08-27
编程技术问答社区
使用Firefox本地消息的异步webRequest.onBeforeRequest URL检查
我正在尝试使用 Firefox 原生消息创建 URL 检查器.问题是,当本机应用程序发送判决时,onBeforeRequest 侦听器已经发布了请求,因此不会发生重定向.您能否帮助我的分机等待回复最多 2 秒,如果答案为“0",则重定向请求? var port = browser.runtime.connectNative("ping_pong"); function inspectURL(requestDetails) { console.log("Loading: { console.log("Rec
92 2022-08-27
编程技术问答社区
tabs.executeScript-我怎样才能知道内容脚本是否被注入了?
我使用 browser.tabs.executeScript 以编程方式将内容脚本注入网站.这将返回一个 Promise,但如果它被拒绝,似乎无法区分以下两种情况: 无法注入内容脚本(即缺少主机许可) 脚本update解析end:update出现错误(但正在注入脚本) 我只对脚本是否被注入感兴趣. 传递给 catch 的参数是一个错误对象.catch(e => console.log(e.toString()) 将输出错误消息,这可能是注入失败的原因(即 Missing host permission)或发生错误 update读取脚本end:update. browser.tabs.executeScript(tabId, { file: '../path/to/content-script.js', frameId: 0, runAt: 'document_idle' }) .catc
84 2022-08-27
编程技术问答社区
加载已解压的扩展程序不能使用 Firefox
“无法安装此插件,因为它似乎已损坏" 我在安装未打包的扩展程序时遇到上述错误.我只是使用 Winrar 解压扩展,然后将文件夹拖到 Firefox 插件/扩展页面. 加上将其压缩到 addon.xpi 也不起作用. 我的目标:我正在编辑一个扩展以满足我的需要,但它似乎不起作用. 我认为 Firefox 有一些类似的签名或其他东西,我该如何禁用它或编辑扩展以满足要求. 我正在运行 58.0(64 位) 扩展使用调试加载时出现以下错误(Mozilla about:debugging) Both edited.xpi 和 original.xpi 都有错误.(但是 edited.xpi 通过 load temporary extension 加载,但不会为拖动方法加载.) Reading manifest: Error processing background.persistent: Event pages are not currently su
296 2022-08-27
编程技术问答社区
安装错误。"此附加组件无法安装,因为它似乎已经损坏"
我目前正在尝试学习如何开发 Firefox 插件,但不幸的是,我在开始开发之前就遇到了问题.我下载了 Firefox 开发团队提供的名为“Borderify"的演示插件,可以在这里看到:GitHub.之后,我打开 WinRar,并将文件夹转换为 .XPI 文件.但是,当我尝试在 Firefox 浏览器上手动安装它时,我收到此消息“无法安装此插件,因为它似乎已损坏".如果有人指出我做错了什么,我将不胜感激. 解决方案 请注意,仅打包文件并将 .ZIP 文件重命名为 .XPI 以进行安装是行不通的.如果你想测试和调试扩展,你需要安装扩展暂时.为此,请转到 about:debugging 并单击 Load Temporary Add-on,然后选择 XPI 文件以安装该插件.您还可以通过简单地选择 manifest.json 文件从源加载插件,而无需将其打包到 XPI. 要让 XPI 文件按预期安装,需要对其进行签名.这将在您 在 addons.mozilla.org 上发布时自
694 2022-08-27
编程技术问答社区
Mozilla是否有更新签名附加组件的API?
我有一个我个人使用的签名插件,但想尝试让它通过 AMO 分发.我已经通过开发者中心上传了初始版本,现在我希望能够通过 CI 管道包含一个自动发布. 我一直在研究如何做到这一点,发现 这篇文章 和 API doc 但运气不佳.我肯定能够正确连接到我的 JWT,因为我得到了 301(我认为这是因为文章中描述的 API 在过去两年中发生了更改),但是当我遵循重定向时得到 400. 每个请求都返回 在多部分文件数据中缺少“上传"键. 我相信这与端点是 PUT 但期望多部分形式有关(我的所有研究都表明这一点得到了仅发布).我尝试了几种不同的方法,包括 cURL 和各种 Python 库 - 包括 PyCurl 尝试在 POST 请求中使用 multipart 并仅覆盖 PUT 方法 - 但似乎没有得到任何结果. 我无法找到任何关于此的最新文档,因为较旧的文章暗示它是一个已弃用的 API,但较新的文档似乎没有我正在寻找的答案.this one 之类的问题表明它仍然是可能的,我已经看
188 2022-07-30
编程技术问答社区
创建跨浏览器Gmail扩展的最佳方式是什么?
我想创建一个适用于 Chrome 和 Firefox 的 Gmail 扩展程序.最好的方法是什么? 解决方案 只需使用 chrome.* 进行扩展 API 调用即可编写适用于两者的代码. 在很大程度上,Chrome 和 Firefox(使用 WebExtensions) 直接与代码兼容.只要您使用两种浏览器都支持的 API (Chrome, Firefox),你可以在 API 调用中使用 chrome.* 命名空间两种浏览器.许多扩展将直接与代码兼容. 但是,有一些功能不兼容.查找此类信息的最佳位置是每个 API 的 Mozilla Developer Network (MDN) 页面.如果你发现不兼容的地方,你可以把它们写下来并提交一个 PR 到 浏览器兼容性 JSON 文件由维护Mozilla,或直接修改相应的 MDN API 页面(例如 开发人员需要看到某些东西实际上被破坏了).对于某些事情,您需要 检测您正在运行的浏览器并为每个浏览器执行略有不同的代码.然而,
244 2022-07-19
编程技术问答社区
谷歌浏览器/火狐浏览器在控制台看不到扩展输出
我正在尝试测试浏览器网络扩展的示例代码.但是,它不起作用.我检查了 Google Chrome 和 Firefox 的控制台.它不打印任何东西.以下是我的代码: manifest.json: { "description": "Demonstrating webRequests", "manifest_version": 2, "name": "webRequest-demo", "version": "1.0", "permissions": [ "webRequest" ], "background": { "scripts": ["background.js"] } } background.js: function logURL(requestDetails) { console.log("Loading: " + requestDetails.url); }
FireFox Addon WebExtension API-打开本地文件/应用程序
我想用WebExtension API编写一个Mozilla Firefox扩展。我无法找到使用WebExtension API的源代码。 var {Cc,Ci} = require(“chrome”); //低级API导入(对于启动器)var prefs = require(“sdk / simple-prefs”)。prefs; var app =“C:\\\\\\\\\\\\\\\\\\\'抄送[“@ mozilla.org/file/local;1\"].createInstance(Ci.nsIFile);file.initWithPath(app);var process = Cc [”@ mozilla.org/process/util;1\"].createInstance (Ci.nsIProcess); if(file.exists()){process.init(file); var params = prefs [“param”]; var args = [
1438 2022-07-19
编程技术问答社区
如何才能最方便地安装WebExtensions供个人使用?
我为 Firefox 创建了一些供个人使用的 WebExtensions.但是,现在我想开始使用它们,我发现有一个相当麻烦的 签名过程.因为这些插件仅供我自己使用,并且不会离开我的电脑,所以我更喜欢安装它们而无需经过签名过程.最简单的方法是什么? 我试图安装一个未签名的包(就像 这个问题).然而,即使我在 about:config 中将 xpinstall.signatures.required 设置为 false,Firefox 仍然不允许我安装此插件.但是,我现在读到我必须拥有 Developer Edition、Nightly 或 ESR 版本才能正常工作.那么,对于普通的 Firefox 版本(版本 50),完成这项工作的最简单方法是什么? 如果我去 about:debugging 那么我可以很好地安装我的插件并且它们工作得很好,所以我在想也许有一种方法可以自动执行此操作并始终通过 about:debugging 在启动 Firefox 时激活它们? 解决方案
220 2022-07-19
编程技术问答社区