Firefox 中的原生 Java/Python/Objective C?

Posted

技术标签:

【中文标题】Firefox 中的原生 Java/Python/Objective C?【英文标题】:Native Java / Python / Objective C in Firefox? 【发布时间】:2011-10-12 22:59:12 【问题描述】:

是否可以将 Java、Python 或 Objective C 直接与 Firefox 浏览器集成?特别是要执行“真正的”本机任务,例如写入文件或连接到本地数据库,或者更好的是,直接调用系统级代码?

值得注意的是,在 *** 的其他地方,有一篇关于本机代码执行的帖子,有点偏向 Windows:Firefox extension: native code execution?

【问题讨论】:

【参考方案1】:

尤其是做“真正的”、原生的任务,比如写文件或 连接到本地数据库,或者更好的是,直接调用 系统级代码?

您不需要额外的语言,Firefox 扩展已经可以做到:

Writing files Connecting to a local SQLite database Calling system libraries directly

我建议不要尝试用 javascript 以外的任何东西编写扩展:虽然有多种可能性,但它们会带来比其价值更多的麻烦。如果有的话,您可以创建一个本地库并通过 js-ctypes 从您的 JavaScript 代码中调用它(参见上面的链接)。

【讨论】:

这个看起来一开始像“not-quite-an-answer”,但是一旦你意识到你可以把你的本地代码放在一个库中并使用 js-ctypes呼吁这是一个很好的答案。 @JoachimSauer:我认为 OP 的“愿望清单”是这里真正的问题 - 他似乎认为 JavaScript 不可能,并提出了错误的问题。直接回答很容易,但对他没有帮助。 可能是他的目标,但他也可能想用这些语言写作,因为他更了解这些语言。那么一个简单的 JS-API 做所有的事情是不够的。 @JoachimSauer:好的,我编辑了我的答案,你是对的——学习 JavaScript 比处理 PythonExt 等问题要少得多。【参考方案2】:

一个“签名的”Java 小程序,在获得正确权限并得到用户批准后,可以在浏览器上下文中运行并可以访问文件或数据库。然而,浏览器中的 Java 小程序如今几乎从未使用过(我的浏览器中已禁用 Java 多年)。

Microsoft 浏览器提供 ActiveX,这是一种在浏览器中运行本机代码的方式,但我不知道今天是否有人使用它。

Google 的nativeclient 是另一种运行本机代码的方法,但目前仅适用于 Google 浏览器。不确定这是否允许直接访问文件。

【讨论】:

本机客户端已被沙盒化,无法从 OP 列表中执行任何操作。【参考方案3】:

PythonExt 为 Firefox 带来 Python 支持: http://code.google.com/p/pythonext/

我不确定他们为 Firefox 的快速发布更新它的速度有多快,你确实需要安装一个扩展,然后它只能在受信任的环境中工作(即你自己正确的扩展)

【讨论】:

【参考方案4】:

或者,您可以构建 Windows 8 Metro 风格的应用程序,让您可以同时使用 Web 技术和本机代码:

http://channel9.msdn.com/posts/Raman-Sharma-Building-Metro-Style-Apps-with-C-and-JavaScript http://code.msdn.microsoft.com/Hybrid-JavaScript-and-C-e6dc77fa

【讨论】:

以上是关于Firefox 中的原生 Java/Python/Objective C?的主要内容,如果未能解决你的问题,请参考以下文章

IE & Firefox - 自定义下拉菜单无法移除原生箭头

IE8 和 Firefox 中的 event.toElement?

[完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器

Selenium2学习-042-Selenium3启动Firefox Version 48.x浏览器(ff 原生 geckodriver 诞生)

ui自动化,主流浏览器, Java

原生ajax的请求过程