问题标签 [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.
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"
javascript - Microsoft Edge 扩展上下文菜单未出现
在被迫使用浏览器一段时间并发现我实际上非常喜欢它之后,我正在尝试创建我的第一个 Edge 扩展。
我的扩展只在页面上显示了一个新的上下文菜单条目。扩展在 Edge 中加载并与元数据(描述、版本等)一起出现在扩展窗格中,但是当我右键单击页面时上下文菜单本身不会显示。
任何熟悉 Edge 扩展的人都知道为什么吗?这是代码。
index.js
清单.json
这是相当样板的东西,实际上它是样板的东西。
angularjs - Angular 表达式在 Chrome 扩展中计算,但在 Edge 扩展中不计算
我有一个简单的浏览器扩展,使用 Angular (v1.6.3),但浏览器扩展弹出窗口中的 Angular 表达式无法在 Edge 中评估,但它在 Chrome 中。
Angular 表达式很简单<div>{{2+2}}</div>
。
当我浏览到相关网站时(如清单文件中配置的那样,即http://marketplace.visualstudio.com、https://marketplace.visualstudio.com或http://www.bbc.com,然后单击扩展名按钮,Chrome 将 html 输出评估为“4”,但 Edge 将 html 输出评估为“{{2+2}}”。
铬示例
边缘示例
我相信 html 和 angular 交互本身基本上是合理的,因为当我使用 URL直接浏览到弹出页面file:///C:/temp/app/popup.html
时, Chrome 和 Edge 都正确地将表达式评估{{2+2}}
为“4”。
直接浏览popup.html时的 Chrome 示例
直接浏览到popup.html时的边缘示例
总而言之,表达式评估失败只是作为边缘扩展;作为 Chrome 扩展程序或在 Edge 和 Chrome 中直接浏览,它都可以工作。
我在GitHub 上放了完整版的源代码,但代码非常简单,包含以下内容:
弹出窗口的popup.html文件页面,其中包含 Angular 表达式:
用于定义 Angular 模块的app.js文件:
告诉网站打开弹出窗口的contentscript.js :
一个实际打开popup.html文件的background.js脚本:
最后是一个manifest.json文件,它将所有内容连接在一起,两个浏览器都理解:
对于它的价值,可以在此处找到有关开始使用 Chrome 扩展程序的一些说明,并在此处找到有关 Edge的说明。
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", "*").
有人可以帮忙吗?
microsoft-edge-extension - 如何使 Edge 扩展对所有用户可见?
我的情况是,安装 Edge 扩展,并使其可供所有用户使用。但是,我安装的扩展对其他用户不可见。是否有任何设置可以为所有用户(本地帐户)配置它?
javascript - 中键单击链接时如何防止默认行为(浏览器扩展)
在我的 Firefox 和 Google Chrome 的扩展中,我可以在中间单击这样的链接时阻止默认行为:
还有https://developers.google.com/web/updates/2016/10/auxclick,https://developer.mozilla.org/en-US/docs/Web/Events/auxclick
我也在尝试为我的 Microsoft Edge 扩展程序执行此操作,但似乎此浏览器的中间点击事件根本不起作用:
因此,我使用 Microsoft Edge 而不是这个:
但是这种方法不会阻止链接在中键单击时在新选项卡中打开
如何使 Microsoft Edge 的行为类似于 Google Chrome 或 Firefox?
angular - Angular 2 Edge扩展未加载
我想使用 Angular 2 构建 Edge 扩展。在构建应用程序并使用 Microsoft Edge Extension Toolkit 更改 Manifest.json 后,我将应用程序上传到 Edge 中。如果我想使用扩展应用程序不会加载组件。
我的清单.json:
是否有任何不受支持或缺失的清单密钥?
microsoft-edge - 如果包含 frameId,executeScript 不起作用
Microsoft Edge 是否executeScript
支持frameId
?
如果我做:
如果我包含frameId
在其中,则会导致以下错误:
未处理的承诺拒绝错误:参数 2 的值无效。属性“frameId”:意外属性。
我通过 webNavigation.getAllFrames 获得 frameId