Firefox Extension против Greasemonkey Script?

Я работаю над расширением Firefox, но это было медленным (частично потому, что у меня нет времени на это работать). У меня есть базовый скелет, проверено, что я могу поговорить с внешним JSON API, изменить любую веб-страницу при загрузке и показать окно настроек. Это все необходимые Hello Worlds для расширения, которое я пишу (возможно, мне не нужно окно настроек).

Внезапно мне пришло в голову, что я могу игнорировать гораздо более простой способ сделать это. Поскольку сценарии Greasmonkey могут быть скомпилированы в Firefox Extensions, Greasemonkey может быть лучшим способом:

  • Это может быть проще (не уверен)?
  • Это может быть кросс-браузер (по крайней мере, Safari и Firefox)?
  • Существуют ли ограничения для скриптов Greasemonkey против "родных" расширений FF? Можно ли написать хромированные пользовательские интерфейсы? Появятся обычные DIVs? Предпочтения сохраняются (я думаю, они могут быть)?

Я ищу сравнение Greasemonkey и "родных" расширений Firefox. Кроме того, кто-нибудь работал с "компиляцией" Greasemonkey script в расширение FF (опыт, проблемы)?

Ответ 1

Я бы сказал, в общем, если ваша цель - изменить способ отображения/функций веб-страницы, тогда Greasemonkey - это путь. Если у вас есть куча окна/пользовательского интерфейса для отображения, и вы действительно выходите за рамки основного намерения Greasemonkey, тогда, вероятно, лучше придерживаться более традиционного расширения.

Ответ 2

Можно подумать, что сценарии greasemonkey не могут вызывать UniversalXPConnect. Из-за этого я сталкиваюсь с некоторыми проблемами, но не уверен, что это можно решить с помощью расширения Firefox. Но я чувствую себя довольно ограниченным, так как не могу назвать UniversalXPConnect и делать что-то большое.

Ответ 3

Теперь Google Chrome набирает популярность. И он также имеет собственный API расширения. Самые простые скрипты Greasemonkey будут установлены в Google Chrome без каких-либо ухищрений. Если вы используете XHR, вам может потребоваться создать расширение Chrome.

Теперь я полагаю, что Mozilla поняла, что расширение Firefox нуждается в капитальном ремонте. В настоящий момент они нажимают на Jetpack. У них должен был быть усовершенствованный механизм расширения давным-давно, принимая во внимание успех Greasemonkey.

Я просто добавляю к вашему вопросу, что есть больше вариантов, а только Greasemonkey и Firefox Extension. Вам нужно решение, которое было бы легко установить/запустить в нескольких браузерах.

Я бы подумал, какие "функции" я собираюсь реализовать в расширении браузера, а затем посмотреть, какой механизм расширения (GM, Jetpack, расширение FF, расширение Google Chrome) поддерживает все функции.

Ответ 4

Спрашивая об этом, я начал работать с компиляцией сценариев Greasemonkey в Firefox. Работает как шарм.

Ограничения - все, что вы не можете сделать с расширением Greasemonkey. Вы не можете сделать реальный Firefox Add-on Preferences, а также не очень серьезно "Chrome". Единственное, что вы можете изменить в браузере, это chrome.css, который появляется раньше загрузки страницы.

Возможно, существуют другие ограничения (см. ответ Priyank, который связан с доступом к локальной файловой системе).

Как говорит филфрео, если вы намерены изменить веб-страницу, Greasemonkey - прекрасный способ пойти. Я не видел проблем с компиляцией расширений Greasemonkey (удивительно) и заставить их работать так же, как в Greasemonkey.