【问题标题】:Writing a Firefox plugin for parsing a custom client-side language编写用于解析自定义客户端语言的 Firefox 插件
【发布时间】:2019-03-10 21:23:00
【问题描述】:

我有一个关于 JavaScript 以外的客户端语言的想法,我想研究开发一个 Firefox 插件,它可以处理页面中包含这种新语言的内容,例如 ,就好像它是原生支持的语言一样。该插件将完成所有语言解析,并且理想情况下能够像 JavaScript 一样对浏览器以及网页中的 html 和 css 执行所有操作。

我做了一堆谷歌搜索,找到了一些关于编写基本 Firefox 插件的文章,但没有这么复杂。

这可能吗?

【问题讨论】:

    标签: firefox


    【解决方案1】:

    一个有趣的想法。请注意,您实际上不需要编写特定于浏览器的插件来执行此操作。一些people have experimented 在Applet 中使用JRuby 来执行嵌入在<script type="text/ruby"> 中的代码。这样的解决方案在启动时可能会更慢(由于加载整个 JVM 实例的开销),但从长远来看(跨浏览器)会更加灵活。此外,在 JVM 语言中构建自定义语言解释器比尝试将其硬塞到 Gecko 中要容易一些。

    【讨论】:

    • 这是一个有用的见解,也是这个项目的好选择。
    【解决方案2】:

    如果我了解您想要做什么,您需要编写一个 Gecko 插件。通过插件,您将能够注册自己的 MIME 类型,然后操作 Javascript 和 DOM。

    这意味着您需要在页面上包含<object /> 或<embed /> 标签来加载您的插件,但您可以查找<script type="application/x-yourtype" />,获取该脚本标签的innerText 并使用您的插件对其进行解析.

    正如 Nickolay 所建议的那样,替代方法是使用浏览器当前支持的任何内容或创建浏览器的自定义版本。 Daniel Spiewak 建议使用 Java 小程序(或 Flash 小程序也可以)也是有效的。

    您需要的信息可在 Mozilla 的开发者网站上找到:

    【讨论】:

    • 太棒了!我根本不想通过 JavaScript,但我确实希望能够操作 DOM。对于警报框之类的东西,我想再一次直接使用 Firefox 以及它们为此类东西提供的任何 API。
    【解决方案3】:

    @Nathan de Vries:不,实际上,您建议的 NPAPI 插件不允许实现对 <script type=...> 的支持。

    OP:这并不容易,但请寻找 PyDOM 和 PyXPCOM - Python 的语言绑定。前者完全符合您的要求 - 对于 Python,但我不确定它的当前状态。无论如何,您很可能需要创建自己的 Firefox 版本来支持其他脚本类型。

    【讨论】:

      【解决方案4】:

      您真的想将您的页面绑定到您自己的自定义脚本语言吗?或者你只是想用不是 javascript 的东西来编写你的客户端代码?如果后者尝试MileScript、Haxe 或Google Web Toolkit

      【讨论】:

      • 这更像是一个理论项目。 “可以吗?”,“好吧,让我们做吧”之类的事情。我不打算开发任何应该以您需要插件来呈现的语言将食物放在桌子上的东西。
      • 啊,好主意 :) 学习 Plugin API 和 XPCOM 可能是一个很好的项目
      猜你喜欢
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 2013-09-02
      • 2012-03-16
      相关资源
      最近更新 更多