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.