gpt4 book ai didi

javascript - 使用 jquery 或 javascript 运行浏览器工具栏按钮

转载 作者:行者123 更新时间:2023-11-30 19:50:04 25 4
gpt4 key购买 nike

我添加了一个名为“外部应用程序按钮”的 chrome 扩展。

它的作用是我们可以将外部应用程序(如 sublime.exe、vscode.exe 等)添加到我们的浏览器工具栏,然后单击它打开 exe。

那么使用 jquery 或 javascript 是否有可能使按钮点击发生?

我的主要目标是使该应用程序在网页中使用 jquery 或 javascript 代码运行。

最佳答案

  1. 对于扩展程序和网页来说,如果不安装额外的软件,就不可能单独完成。您可以通过代码在计算机上执行的操作处于“沙盒”状态,并且受限于浏览器提供的任何 API。

  2. 要调用浏览器外部的应用程序,扩展程序需要使用名为 Native Host 的东西.这就是为什么需要安装额外的东西才能使该扩展正常工作的原因。

    常规网页不能使用 native 主机,因此该路由已关闭。

  3. 如果我们允许安装扩展程序,我们可以从网页代码做到这一点吗?

    是的,与网页对话的扩展程序(通过内容脚本或 externally_connectable 机制)可以允许网站触发扩展程序代码,触发本地主机代码,做你想做的事。

    您不能使用任意第三方扩展来做到这一点,因此您需要自己编写。

  4. 如果我们允许安装额外的组件,您是否可以在没有扩展的情况下安装它?

    原则上是的。一个典型的方法是安装一个帮助程序,在本地端口上打开一个网络服务器,例如本地主机:12345。然后任何 JavaScript 上下文都可以尝试连接到它。

    在实践中,会出现并发症。

    • 如何保护本地服务器免受任意连接的侵害?您需要一些预先共享的 secret ,以防止其他站点或本地计算机上的其他软件滥用它。

    • 从 HTTPS 网站连接到非 HTTPS 域是一个问题。为浏览器信任的 localhost 制作证书也是一个问题(如果绕过它会带来安全隐患)。这会使额外组件的安装变得复杂。

  5. 另一个想法:您的额外组件可以将自己注册为协议(protocol)处理程序。例如,您可以添加一个 launch-app: 协议(protocol)并告诉系统您的辅助应用程序需要被调用。示例:Steam 使用这种方法从浏览器与其客户端通信(例如安装/启动游戏)。

    请注意,这是一种单向通信,但对于“启动程序”用例来说已经足够了。

    然后您只需提供指向该特殊协议(protocol)的链接即可。同样,这需要在目标系统中安装一个额外的组件。你不能只用浏览器做到这一点。

所以总体答案是:它很复杂,需要额外安装软件。

关于javascript - 使用 jquery 或 javascript 运行浏览器工具栏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54572814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com