Разработка действительно простого расширения для браузера

Я хочу разработать расширение для браузера.

Это расширение после установки сообщит браузеру о включении файла javascript при загрузке всех страниц из списка определенных доменов.

Этот тип расширения называется «Content Scripts» в Google Chrome.

Из того, что я прочитал, чтобы создать расширения такого типа для Chrome, вы просто помещаете этот код в файл «Манифест».

{
  "name": "My extension",
  ...
  "content_scripts": [
    {
      "matches": ["http://www.google.com/*"],
      "js": ["jquery.js", "myscript.js"]
    }
  ],
  ...
}

После установки расширения jquery.js и myscripts.js будут включаться при каждой загрузке страницы google.com.

Этот подход к разработке расширений, принятый в Chrome, кажется очень простым.

Мой вопрос: насколько сложно было бы воспроизвести этот тип расширения для других основных браузеров?


person jamjam    schedule 17.08.2011    source источник
comment
Для других основных браузеров, например? Firefox имеет собственный механизм с плагинами. Сафари свое. Я бы посоветовал попробовать Greasemonkey, расширение, которое работает в большинстве основных браузеров, и попробовать скрипты контента с помощью Greasemonkey.   -  person Some Guy    schedule 17.08.2011
comment
Crossrider может помочь вам в этом с помощью своей среды разработки расширений для разных браузеров. (вы можете быстро начать работу с javascript и онлайновой IDE)   -  person gkof    schedule 29.08.2012


Ответы (2)


Сам Firefox не предоставляет простого способа загрузки скриптов контента. Однако надстройка GreaseMonkey делает это, и существует большая коллекция примеров сценариев на выбор. на http://userscripts.org/. Добавьте к этому, что скрипты GreaseMonkey могут быть скомпилированы в "настоящее" расширение, которое больше не требуется. GreaseMonkey, и их также можно установить в Chrome (без расширения).

Другой возможностью для Firefox является использование Создателя дополнений или SDK и модуль page-mod< /а>. Что-то вроде этого должно работать:

var pageMod = require("page-mod");

pageMod.PageMod({
  include: ["http://www.google.com/*"],
  contentScriptFile: [data.url("jquery.js"), data.url("myscript.js")]
});

С помощью Add-on Builder довольно легко превратить этот код в реальное расширение. Однако у меня нет опыта работы с Add-on SDK, поэтому я не могу предложить вам дополнительную помощь.

person Wladimir Palant    schedule 17.08.2011
comment
Я слышал о Greasemonkey и пользовательских скриптах. Но из-за простого характера моего расширения. Я хотел вообще избежать гриммонки. Однако я не знал об этом реальном варианте расширения поверх Greasemonkey. - person jamjam; 17.08.2011
comment
Итак, для Chrome я должен создать файл манифеста с приведенным выше кодом. Для Firefox скомпилируйте реальное расширение поверх Greasemonkey. Как насчет ужасного IE? - person jamjam; 17.08.2011
comment
для Firefox вам не нужно ничего компилировать .. он написан на xul и заархивирован в файл-контейнер xpi (просто создайте zip и переименуйте его в xpi;) - person Walialu; 18.08.2011
comment
@Walialu: помогает, когда знаешь, на что отвечаешь. Я говорю о пользовательских скриптах, и их архивирования явно недостаточно, чтобы превратить их в настоящие расширения. - person Wladimir Palant; 18.08.2011
comment
@jamjam: я отредактировал свой ответ, добавив пример, основанный на Add-on SDK, это может быть лучше, чем древний компилятор GreaseMonkey, и он больше похож на то, что вы делаете в Chrome. - person Wladimir Palant; 18.08.2011

Попробуйте Kango Framework. Это фреймворк для кросс-браузерных расширений. Вы можете разрабатывать расширения для всех основных браузеров, работающих с одним исходным кодом. Поддерживает IE, Firefox, Chrome, Opera и Safari.

person Serg    schedule 24.03.2012