在chrome插件中结合Python和Javascript

在chrome插件中结合Python和Javascript,javascript,python,google-chrome-extension,Javascript,Python,Google Chrome Extension,我正在编写一个chrome扩展,在用户访问的每个页面中注入内容脚本。我想做的是获取python函数的输出,以便在内容脚本中使用(不能用javascript编写,因为它需要原始套接字才能连接到远程SSL服务器) 我曾读到,可能会使用CGI和Ajax等将python代码的输出转换为javascript代码,但我遇到了3个问题: 我不能允许在本地服务器上托管python代码,因为它是只有本地计算机才能知道的安全敏感数据 Chrome要求HTTP和HTTPS不能混合使用——如果用户访问HTTPS网站,我

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

我曾读到,可能会使用CGI和Ajax等将python代码的输出转换为javascript代码,但我遇到了3个问题:

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

  • Chrome要求HTTP和HTTPS不能混合使用——如果用户访问HTTPS网站,我就不能在HTTP服务器上托管python代码

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


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

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

    这里可能是您的答案

    您可以指定扩展或应用程序能够调用的本机主机应用程序(在扩展的情况下,可能通过后台页面),该应用程序可以是Python脚本


    事实上,它使用Python脚本。

    使用解释器!这不需要启动服务器来访问脚本吗?据我所知,确实如此,因为我尝试了它,并且输出是相同的(python代码本身),您确定您的本地或远程服务器正在运行python吗?Javascript将获取文件的任何输出,但是如果Python没有在该服务器上运行,您将看到实际的代码。我用了最后一个答案。没有使用本地服务器。基本上就像我说的,我试图远离本地服务器——如果我必须的话,我会的,但我觉得如果没有人想过直接将python与javascript集成,那就太奇怪了。。。一定有别的解决办法。这看起来像我要找的!我会尝试并发布结果。好的,我已经安装好了,但我还有最后一个问题:chrome示例运行,但示例的web应用部分显示“与本机消息传递主机通信时出错”。我已经确认脚本本身正在运行(如果我将创建messagebox的代码放入其中,我就会看到它)。有什么问题吗?看文档,有一个关于错误的详细章节。简言之,清单很可能有问题。事实上,nevermind:“与本机消息传递主机通信时出错。这是一个非常常见的错误,表明本机消息传递主机中的通信协议实现不正确。”没错,但google自己提供的示例会出什么问题呢?我认为这与他们协议的实施无关。