Написание плагина Firefox для анализа пользовательского языка на стороне клиента - PullRequest
6 голосов
/ 16 сентября 2008

У меня была идея для клиентского языка, отличного от JavaScript, и я хотел бы изучить разработку плагина Firefox, который будет обрабатывать включения этого нового языка на странице, например, , как если бы это был язык с естественной поддержкой. Плагин будет выполнять весь синтаксический анализ языка и в идеале сможет выполнять все операции в браузере, а также HTML и CSS на веб-странице так же, как JavaScript.

Я провел несколько поисков в Google и нашел несколько статей по написанию основных плагинов для Firefox, но ничего сложнее.

Возможно ли это вообще?

Ответы [ 4 ]

3 голосов
/ 16 сентября 2008

Если я понял, что вы хотели бы сделать, вам нужно написать плагин Gecko. С помощью плагина вы сможете зарегистрировать свой собственный тип MIME, а затем манипулировать Javascript и DOM.

Это означает, что вам нужно будет добавить тег <object /> или <embed /> на страницу для загрузки вашего плагина, но затем вы можете поискать <script type="application/x-yourtype" />, получить innerText этого тега скрипта и проанализировать его с помощью вашего плагина. .

Как предположил Николай, альтернативой является использование того, что в данный момент поддерживает браузер, или создание пользовательской сборки браузера. Предложение Даниэля Спевака использовать Java-апплет (или апплет Flash также подойдет) также справедливо.

Информация, которую вы запрашиваете, доступна на сайте разработчика Mozilla:

3 голосов
/ 16 сентября 2008

интересная идея. Обратите внимание, что вам не нужно писать плагин для браузера, чтобы сделать это. Некоторые люди экспериментировали с использованием JRuby в апплете для выполнения кода, встроенного в <script type="text/ruby">. Такое решение может быть медленнее при запуске (из-за накладных расходов при загрузке всего экземпляра JVM), но оно будет гораздо более гибким в долгосрочной перспективе (кросс-браузерный). Кроме того, немного проще создать собственный интерпретатор языка на языке JVM, чем пытаться вставить его в Gecko.

2 голосов
/ 16 сентября 2008

@ Натан де Фриз : нет, на самом деле предложенные плагины NPAPI не позволяют реализовывать поддержку <script type=...>.

OP: это не легко, но ищите PyDOM и PyXPCOM - языковые привязки для Python. Первый делает именно то, что вы просили - для Python, но я не уверен в его текущем состоянии. В любом случае весьма вероятно, что вам нужно создать собственную сборку Firefox для поддержки дополнительных типов сценариев.

0 голосов
/ 16 сентября 2008

Вы действительно хотите связать свои страницы с вашим собственным языком сценариев? Или вы просто хотите написать свой клиентский код в чем-то, что не является JavaScript? Если последний попытается MileScript , Haxe или Google Web Toolkit

...