编写用于解析自定义客户端语言的Firefox插件

时间:2008-09-16 07:08:06

标签: firefox

我有一个除JavaScript以外的客户端语言的想法,我想研究开发一个Firefox插件,它会在页面中包含这种新语言,例如< script type =“newscript” src =“path / script.ns”/>,就好像它是一种本机支持的语言。该插件将执行所有语言解析,理想情况下能够像浏览器一样执行浏览器上的每个操作以及网页中的html和css。

我已经完成了一堆谷歌搜索并找到了一些关于编写基本Firefox插件的文章,但没有像这样复杂。

这甚至可能吗?

4 个答案:

答案 0 :(得分:3)

如果我明白你想做什么,你需要写一个Gecko插件。通过插件,您将能够注册自己的MIME类型,然后操纵Javascript& DOM。

这意味着您需要在页面上添加<object /><embed />标记才能加载插件,但您可以查找<script type="application/x-yourtype" />,抓取该脚本标记的innerText并使用您的插件解析它。

正如Nickolay所建议的,另一种方法是使用浏览器当前支持的任何内容或创建浏览器的自定义版本。 Daniel Spiewak建议使用Java applet(或Flash applet也可以)也是有效的。

您所关注的信息可在Mozilla的开发者网站上找到:

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

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