如何用JavaScript打开我的扩展程序弹出窗口?

Yuq*_*ang 36 google-chrome google-chrome-extension

我正在尝试编写一个JavaScript函数,它将打开我的扩展名,就像点击扩展图标一样.我知道如何在新标签中打开我的扩展程序:

var url = "chrome-extension://kelodmiboakdjlbcdfoceeiafckgojel/login.html";
window.open(url);
Run Code Online (Sandbox Code Playgroud)

但是我想在浏览器的右上角打开一个弹出窗口,就像点击扩展图标一样.

aps*_*ers 26

Chromium开发团队明确表示他们不会启用此功能.请参阅功能请求:以编程方式打开扩展程序弹出框:

浏览器和页面操作弹出窗口的理念是它们必须由用户操作触发.我们的建议是使用新的HTML通知功能......

桌面通知可以通过编程方式用于向用户显示一个小的HTML页面,就像弹出窗口一样.它不是一个完美的替代品,但它可能提供您需要的功能类型.

  • 不知何故,有可能使用Google自己的Google Cast扩展程序. (2认同)

Xan*_*Xan 19

Chrome团队确实创建了一种以编程方式打开弹出窗口的方法,但它仅作为私有API启用,并且由于安全问题,计划使其普遍可用.

所以, 截至2018年3月 截至目前,你还是做不到.


Juz*_*Ali 6

简短的回答是你不能以browserAction编程方式打开.但是您可以dialog使用您的内容脚本创建一个模拟您的内容脚本browserAction并且以编程方式显示该脚本.但是,您将无法background page直接从此弹出窗口访问您的分机号码popup.html.您必须pass message转而使用您的扩展程序.

  • 是的,似乎大多数扩展“模仿”通过在当前浏览器窗口的“右上角”创建一个浮动 div 来“模仿”弹出窗口,*看起来*来自您的扩展,因为它靠近图标,并且图标文本更改为匹配等。但它没有,它只是一个插入的 div ......另见 /sf/ask/388097951/弹出窗口从背景-htm (2认同)