在chrome插件中结合Python和Javascript

Combining Python and Javascript in a chrome plugin

本文关键字:Python Javascript 结合 chrome 插件      更新时间:2023-09-26

我正在编写一个Chrome扩展程序,它将内容脚本注入用户访问的每个页面。我想做的是获取 python 函数的输出,以便在内容脚本中使用(不能用 javascript 编写它,因为它需要原始套接字才能连接到我的远程 SSL 服务器(。

我读过可能会使用 CGI 和 Ajax 等,将 python 代码的输出获取到 javascript 代码中,但我遇到了 3 个问题:

  1. 我不允许在本地服务器上托管python代码,因为它是只有本地计算机才能知道的安全敏感数据。

  2. Chrome要求HTTP和HTTPS不能混合 - 如果用户访问HTTPS网站,我无法在HTTP服务器上托管python代码。

  3. 我认为 Chrome 甚至不支持扩展名上的 CGI——当我尝试访问本地文件时,它所做的只是打印出文本(python 代码本身(,而不是我定义的输出(我试图使用 Flask 这样做(。正如我在 1 中所说,无论如何我什至不应该尝试这个,但这只是一个旁注。

所以我的问题是,如何在使用 javascript 构建的内容脚本中获取 python 函数的输出?

本机消息传递可能是您的答案。

可以指定扩展或应用能够调用的本机主机应用程序(如果是扩展,则可能通过后台页面(,并且可以是 Python 脚本。

事实上,它的示例应用使用 Python 脚本。

在使用 Javascript 构建的内容脚本中获取 Python 脚本输出的唯一方法是使用 XMLHttpRequest 调用该文件。如您所指出的,如果页面通过HTTPS提供,则必须使用HTTPS连接。解决此问题的方法是调用后台脚本,然后后台脚本可以按照它喜欢的任何协议获取数据,并将其返回到内容脚本。