【发布时间】:2020-01-14 17:04:06
【问题描述】:
我的 Web 应用程序需要访问 UDP 套接字,这是 Web 不支持的,可能是出于安全原因。我决定创建一个 chrome 扩展程序,用户需要安装它才能使用我的 Web 应用程序,当然这样做需要他们自担风险。
这个想法是让我的扩展通过向网页添加一个全局变量(例如myExtension.udpSockets)来公开自定义 UDP 套接字 API。在尝试访问我的 UDP 套接字 API 之前,网页可以先检查 window.myExtension 是否存在(已安装扩展)。
当网页访问我的 UDP 套接字 API 时,我将创建一个弹出窗口以确保用户愿意让该网页访问 UDP 套接字并说明安全隐患。
我目前将我的代码放在内容脚本中,例如
function createUDPSocket() {
// use chrome API
console.log("Creating a UDP socket!");
}
我知道我可以通过修改 DOM 将 JavaScript 注入网页。
document.createElement("script");
// etc.
但是我怎样才能将我的 API 暴露给这个网页呢?它们位于不同的 JS 上下文中,因此这是行不通的。他们之间有什么交流方式吗?
Edt:看来我在 Firefox 扩展中寻找类似于 exportFunction 的东西。
【问题讨论】:
-
我认为您必须注入脚本,然后通过 postMessage API 与您的扩展程序通信。因此,您实际上将在每一端包装 postMessage。
-
@Brad 谢谢,我会搜索一下,看看它是否有效
标签: javascript google-chrome-extension