В этой статье я буду описывать этапы разработки плагина к FireFox, дабы увековечить полученные знания.
Описание всех скрытых параметров Firefox — http://kb.mozillazine.org/Firefox_:_FAQs_:_About:config_Entries
Архитектура Firefox позволяет вносить любые изменения во внешний вид программы, фактически изменяя его до неузнаваемости. Для этого достаточно знать нужные директивы и прописать их в файле UserChrome.css. Как их узнать? Прочитав об этом на сайте www.mozilla.org/unix/customizing.html.
Разработка плагинов для Firefox: http://www.xul.ru/link.develop.php
Статья по написанию модулей для новых версий браузера: https://developer.mozilla.org/en/XUL_School/Getting_Started_with_Firefox_Extensions
Билдер: https://addons.mozilla.org/ru/developers/builder
Автоматическое обновление модуля
http://www.borngeek.com/firefox/automatic-firefox-extension-updates/
Путь для ручной установки расширений:
1 |
C:\Users\UserName\Application Data\Mozilla\Extensions\{ec8030f7-c20a-464f-9b0e-13a3a9e97384} |
Файлы с расширением *.xpi, *.jr – это обыкновенные zip архивы. Если у них поменять расширение на zip, то модуль можно разобрать на кусочки.
Чтобы выложить плагин для Firefox на своем сайте, в файле .htaccess каталога с “.xpi”-файлами необходимо добавить следующую инструкцию:
1 |
AddType application/x-xpinstall .xpi |
Хороший учебник XUL: http://dg-tww.narod.ru/xul/index.html
Описание структуры install.rdf и contents.rdf http://www.toolbarius.ru/2.html
Скрыть панель вкладок:
1 2 |
gBrowser.setStripVisibilityTo(false); gBrowser.mPrefs.setBoolPref("browser.tabs.forceHide", false); |
Показать панель вкладок:
1 2 |
gBrowser.setStripVisibilityTo(true); gBrowser.mPrefs.setBoolPref("browser.tabs.forceHide", true); |
Скрыть весь верхний блок интерфейса:
1 |
gNavToolbox.style.display = 'none'; |
Использование javascript файла для загрузки модуля bootstrap.js:
Нужно добавить в файл модуля install.rdf параметр:
1 |
<code><em:bootstrap>true</em:bootstrap> |
После этого, будет автоматически подгружаться файл bootstrap.js из корня модуля.
Более подробно по bootstrap.js можно прочитать здесь: https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions
Открытие окна с XUL версткой
1 2 3 |
welcomeWindow = window.openDialog("chrome://plugin/content/dialogs/player.xul", 'dialog', 'chrome,dialog,centerscreen,alwaysRaised'); |
XUL для отображения в окне HTML кода:
1 2 3 4 5 6 7 8 9 |
<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?> <dialog id="ad_video_frame" title="AD Video" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" buttons="," onload="window.focus();"> <!-- Далее верстка --><div></div> </dialog> |
Чтобы получить из скрипта модуля доступ к текущей открытой странице:
1 2 3 |
let win = gBrowser.selectedBrowser.contentWindow; // win.location // win.document.getElementById(...); |
Тоесть объект win теперь тоже самое, что и window в открытой html страничке
Закрыть текущую вкладку:
1 |
gBrowser.selectedBrowser.contentWindow.close(); |
Закрыть браузер:
1 2 3 4 |
let win = Components.classes['@mozilla.org/appshell/window-mediator;1'] .getService(Components.interfaces.nsIWindowMediator) .getMostRecentWindow('navigator:browser'); win.close(); |
Обработка открытых вкладок:
https://developer.mozilla.org/en-US/docs/Code_snippets/Tabbed_browser
Просмотров : 7948