问题标签 [microsoft-edge-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 投票
2 回答
1983 浏览

node.js - 打字稿中 Edge Web 扩展 API browser.runtime.* 的 browser.d.ts 依赖项

对于使用 typescript 开发的 chrome 扩展,我们需要在类型文件夹中名为 chrome.d.ts 的定义文件来访问 chrome.runtime.* 或 chrome.tabs.* 等 Web 扩展 API。

对于边缘扩展,在 typescript 中开发,我们需要在类型文件夹中名为 browser.d.ts 的定义文件来访问 web 扩展 API,如 browser.runtime.*

我们如何使用节点包管理器(npm)下载此依赖项。我在我的 background.ts 扩展文件中添加了对该文件的引用,例如:

/// 参考路径="typings/browser/browser.d.ts"

0 投票
1 回答
566 浏览

javascript - Microsoft Edge 扩展上下文菜单未出现

在被迫使用浏览器一段时间并发现我实际上非常喜欢它之后,我正在尝试创建我的第一个 Edge 扩展。

我的扩展只在页面上显示了一个新的上下文菜单条目。扩展在 Edge 中加载并与元数据(描述、版本等)一起出现在扩展窗格中,但是当我右键单击页面时上下文菜单本身不会显示。

任何熟悉 Edge 扩展的人都知道为什么吗?这是代码。

index.js


清单.json


这是相当样板的东西,实际上它是样板的东西。

0 投票
2 回答
990 浏览

angularjs - Angular 表达式在 Chrome 扩展中计算,但在 Edge 扩展中不计算

我有一个简单的浏览器扩展,使用 Angular (v1.6.3),但浏览器扩展弹出窗口中的 Angular 表达式无法在 Edge 中评估,但它在 Chrome 中。

Angular 表达式很简单<div>{{2+2}}</div>

当我浏览到相关网站时(如清单文件中配置的那样,即http://marketplace.visualstudio.comhttps://marketplace.visualstudio.comhttp://www.bbc.com,然后单击扩展名按钮,Chrome 将 html 输出评估为“4”,但 Edge 将 html 输出评估为“{{2+2}}”。

铬示例

Chrome 作为浏览器扩展

边缘示例

Edge 作为浏览器扩展

我相信 html 和 angular 交互本身基本上是合理的,因为当我使用 URL直接浏览到弹出页面file:///C:/temp/app/popup.html时, Chrome 和 Edge 都正确地将表达式评估{{2+2}}为“4”。

直接浏览popup.html时的 Chrome 示例

Chrome直接浏览到popup.html

直接浏览到popup.html时的边缘示例

Edge直接浏览到popup.html

总而言之,表达式评估失败只是作为边缘扩展;作为 Chrome 扩展程序或在 Edge 和 Chrome 中直接浏览,它都可以工作。

You Tube 上的 30 秒视频演示: YouTube 演示

我在GitHub 上放了完整版的源代码,但代码非常简单,包含以下内容:

弹出窗口的popup.html文件页面,其中包含 Angular 表达式:

用于定义 Angular 模块的app.js文件:

告诉网站打开弹出窗口的contentscript.js

一个实际打开popup.html文件的background.js脚本:

最后是一个manifest.json文件,它将所有内容连接在一起,两个浏览器都理解:

对于它的价值,可以在此处找到有关开始使用 Chrome 扩展程序的一些说明,并在此处找到有关 Edge的说明。

0 投票
2 回答
900 浏览

javascript - 在 Microsoft Edge 扩展中未定义 browser.tabs

我正在编写 Microsoft Edge 扩展。

我有以下清单文件:

当我放入我的 script.js 时:

它失败是因为 browser.tabs 未定义?

为什么?

在此处输入图像描述

0 投票
1 回答
908 浏览

javascript - 如何在框架和边缘扩展内容脚本之间进行通信?

我正在开发一个 Edge 扩展,我需要从框架文档(不是顶部文档,顶部文档工作正常)向内容脚本发送消息。
如下:

从框架文档发送消息,其中包含:

window.top.postMessage("Hi, I am from frame", "*").

在控制台面板中,我可以看到window top message...event:然后浏览器重新加载页面。消息好像被屏蔽了。
扩展可以从 github 获得
重现步骤:
加载扩展,打开Google,打开控制台面板,切换到 Frame,然后输入

window.top.postMessage("Hi, I am from frame", "*").

有人可以帮忙吗?

0 投票
1 回答
346 浏览

microsoft-edge-extension - 如何使 Edge 扩展对所有用户可见?

我的情况是,安装 Edge 扩展,并使其可供所有用户使用。但是,我安装的扩展对其他用户不可见。是否有任何设置可以为所有用户(本地帐户)配置它?

0 投票
1 回答
1195 浏览

javascript - 中键单击链接时如何防止默认行为(浏览器扩展)

在我的 Firefox 和 Google Chrome 的扩展中,我可以在中间单击这样的链接时阻止默认行为:

还有https://developers.google.com/web/updates/2016/10/auxclickhttps://developer.mozilla.org/en-US/docs/Web/Events/auxclick

我也在尝试为我的 Microsoft Edge 扩展程序执行此操作,但似乎此浏览器的中间点击事件根本不起作用:

因此,我使用 Microsoft Edge 而不是这个:

但是这种方法不会阻止链接在中键单击时在新选项卡中打开

如何使 Microsoft Edge 的行为类似于 Google Chrome 或 Firefox?

0 投票
1 回答
1061 浏览

javascript - Microsoft Edge 中的内容脚本和后台脚本之间的通信

0 投票
0 回答
192 浏览

angular - Angular 2 Edge扩展未加载

我想使用 Angular 2 构建 Edge 扩展。在构建应用程序并使用 Microsoft Edge Extension Toolkit 更改 Manifest.json 后,我将应用程序上传到 Edge 中。如果我想使用扩展应用程序不会加载组件。

扩展弹出窗口

我的清单.json:

是否有任何不受支持或缺失的清单密钥?

0 投票
1 回答
242 浏览

microsoft-edge - 如果包含 frameId,executeScript 不起作用

Microsoft Edge 是否executeScript支持frameId

如果我做:

如果我包含frameId在其中,则会导致以下错误:

未处理的承诺拒绝错误:参数 2 的值无效。属性“frameId”:意外属性。

我通过 webNavigation.getAllFrames 获得 frameId