Для удовольствия я пытаюсь написать расширение для Firefox.Просто очень просто.Я просмотрел учебники, которые нашел, и у меня работает базовое приложение «Hello, World».
Что я хотел бы сделать, так это добавить прослушиватель событий к существующему элементу в приложении Firefox DOM браузера (т.е. вкладки).До сих пор все ресурсы, которые я смог найти, показывают, как добавить новый элемент в приложение, а затем добавить к нему действие с помощью Javascript.Я пробовал несколько способов добавить функцию Javascript (которая, как я знаю, работает, поскольку я успешно добавил элементы с этой функцией) к существующим элементам.
Моя последняя попытка сделать это структурирована следующим образом:
<?xml version="1.0"?>
<!-- in myExtension.xul -->
<overlay id="myExtension"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript">
var tabs = document.getElementsByTagName("tabbrowser-tab")
var len = tabs.length;
for (var i = 0; i < len; i++) {
tabs[i].ondblclick = function() {
alert('bam!');
}
};
</script>
</overlay>
Ничего из этого не работает.Как я уже сказал, я совершенно новичок в этом деле, и я немного вдохновился проектом выходного дня.Может быть, есть какой-то способ убедиться, что я получаю доступ к документу Chrome, а не к документу страницы? Хотя, когда я пытаюсь получить элементы страницы (то есть "p"), используя эту технику, это тоже не работает, так что это, вероятно, тупик.
[править] Чтобы попытатьсяпроясните некоторые недоразумения:
Что я подразумеваю под DOM браузера - это элементы, которые являются частью интерфейса Chrome, , а не элементы веб-страницы.Я говорю о размещении прослушивателя событий специально для элемента, который уже существует как часть пользовательского интерфейса приложения Firefox, такого как вкладка (не содержимое вкладки, а сама вкладка) или, скажем, кнопка «Домой».Я хочу переопределить поведение частей графического интерфейса приложения Firefox.
Скажем, например, что я хотел добавлять оповещение каждый раз, когда кто-то нажимал кнопку «Новая вкладка» или кнопку «Закрыть вкладку».Или, если я хотел переопределить кнопку «Перезагрузить», чтобы перенаправить в корень домена текущей вкладки, а не просто перезагрузить страницу.Это все существующие части Firefox, и я хочу переопределить их / переписать их через расширение, в частности, добавив к ним действие javascript.
[/ edit]
[sidenote] Isвстроенный JavaScript разрешен в XUL?Или это должно быть в отдельном файле? [/ Sidenote]
У кого-нибудь есть какие-либо советы по этому поводу?