Написание плагина Firefox для синтаксического анализа пользовательского клиентского языка

StackOverflow https://stackoverflow.com/questions/69982

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня была идея для клиентского языка, отличного от JavaScript, и я хотел бы рассмотреть возможность разработки плагина Firefox, который обрабатывал бы включения этого нового языка на странице, например <script type="newscript" src="path/script.ns" />, just as if it were a natively supported language.Плагин выполнял бы весь синтаксический анализ языка и в идеале был бы способен выполнять все операции в браузере и с html и css внутри веб-страницы точно так же, как это делает JavaScript.

Я поискал в Google и нашел несколько статей о написании базовых плагинов Firefox, но ничего такого сложного, как это.

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

Необходимая вам информация доступна на веб-сайте разработчика Mozilla:

Вы действительно хотите привязать свои страницы к вашему собственному скриптовому языку?Или вы просто хотите написать свой клиентский код на чем-то, что не является javascript?Если последнее попытается Описание пройденного пути, Хаксе, или Веб-инструментарий Google

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top