Хочу вызывать функцию при смене табов пользователем.
Сделал так:
window.addEventListener('select', function(event) { if (event.originalTarget.tagName == 'xul:tabs') alert('test') }, false);
Вроде работает, но т.к. опыта мало..., вдруг есть какой-нибудь более правильный вариант?!
Отсутствует
В контекстном меню Лисы есть такой пункт как "Получить исходный код выделенного фрагмента". Подскажите, пожалуйста, как произвести эту операцию программно, в коде расширения, и получить этот исходник в переменную.
Отсутствует
Всем привет.
Можно ли как-то в аддоне узнать локальный ip адрес пользователя?
Уверенное "НЕТ" тоже будет хорошим ответом.
Отредактировано Snipe (19-02-2009 14:55:50)
Отсутствует
Можно ли как-то в аддоне узнать локальный ip адрес пользователя?
Есть такой вариант:
var obj = Components.classes["@mozilla.org/network/dns-service;1"]. getService(Components.interfaces.nsIDNSService); var hip = obj. resolve (obj. myHostName, 0); var ip; var res = ""; while (hip. hasMore ()) { ip = hip. getNextAddrAsString (); res += ip + "\n"; } alert (res);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Подскажите, а возможно ли сделать и как следуешее - встроить функцию в DOM сайта ? в смысле хочу вызывать с сайта функцию скажем document.myDom.myFunction(); возвращающую/устанавливающие некие сеттинги заданные в sqlite на стороне пользователя. Я что-то поискал и не нашел где это описано.
Отсутствует
Отсутствует
Можно ли как-то в аддоне узнать локальный ip адрес пользователя?
Есть такой вариант:
Не знаю, что делаю не так, но не работает, а try/catch выдает
Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIDNSService.resolve]
И еще вопрос, как узнать IP сайта, на который пользователь зашел?
Отредактировано Snipe (24-02-2009 12:50:08)
Отсутствует
Еще вопрос. У меня в аддоне событие происходит по загрузке страницы:
window.addEventListener( 'load', function () { gBrowser.addEventListener('load', pageLoaded, true); }, false );
А можно как-то сделать, чтоб событие происходило не по окончании загрузки, а при начале.
Т.е. УРЛ уже поменялся, но страница не догрузилась и вот в это время...
Отсутствует
Не знаю, что делаю не так, но не работает, а try/catch выдает
Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIDNSService.resolve]
Скорее, я ошибся с решением.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А можно как-то сделать, чтоб событие происходило не по окончании загрузки, а при начале.
gBrowser.webProgress для всех табов или аналогично для конкретного browser-а
На всякий случай: есть еще DOMContentLoaded - когда загрузился только html, а картинки и т.д. - еще нет.
Отсутствует
А можно как-то сделать, чтоб событие происходило не по окончании загрузки, а при начале.
gBrowser.webProgress для всех табов или аналогично для конкретного browser-а
На всякий случай: есть еще DOMContentLoaded - когда загрузился только html, а картинки и т.д. - еще нет.
C DOMContentLoaded понятно:
gBrowser.addEventListener('DOMContentLoaded', pageLoaded, true);
а с gBrowser.webProgress что-то никак не разберусь, м.б. есть где-то пример?
Добавлено:
Сделал так, вроде работает (тестирую):
var myProgressListener = {'onLocationChange': function(a, b, c, d){pageLoaded(a, b, c, d);}}; gBrowser.addProgressListener(myProgressListener);
Отредактировано Snipe (25-02-2009 11:28:35)
Отсутствует
м.б. есть где-то пример?
EDIT: исправил ссылку
Отредактировано Crazy-EyE (25-02-2009 21:35:48)
Отсутствует
м.б. есть где-то пример?
(There is currently no text in this page)
Но все равно спасибо, первый пост помог. Пока вроде работает, как выше писал.
Отсутствует
А зачем через аддон? Поисковики и так ставятся неплохо... Вот отсюда
Продам: совесть, ответственность, вежливость, воспитанность. Недорого.
Отсутствует
А зачем через аддон? Поисковики и так ставятся неплохо... Вот отсюда
НУ сам по себе поисковик не нужен без аддона, а лишние действия для пользователя (поставить отдельно поисковик и отдельно аддон) - тоже не хотелось бы.
Отсутствует
Snipe, упс, исправил.
НУ сам по себе поисковик не нужен без аддона, а лишние действия для пользователя (поставить отдельно поисковик и отдельно аддон) - тоже не хотелось бы.
Если внутри расширения сделать директорию /searchplugins и положить туда поисковик, думаю, будет работать (сам не пробовал). Application-specific Extension Files
В крайнем случае есть еще Multiple Item Packaging.
Отредактировано Crazy-EyE (25-02-2009 21:47:11)
Отсутствует
Если внутри расширения сделать директорию /searchplugins и положить туда поисковик, думаю, будет работать (сам не пробовал). Application-specific Extension Files
Спасибо, работает.
Отсутствует
А можно как-то после установки расширения и соответственно поискового плагина с разрешения пользователя ставить плагин по умолчанию?
Как всегда, уверенное нет - тоже хороший ответ.
Отредактировано Snipe (26-02-2009 19:09:25)
Отсутствует
entropy
Вот код скриплета
javascript:function%20getSelSource()%20{%20x%20=%20document.createElement(%22div%22);%20x.appendChild(window.getSelection().getRangeAt(0).cloneContents());%20return%20x.innerHTML;%20}%20function%20makeHR()%20{%20return%20nd.createElement(%22hr%22);%20}%20function%20makeParagraph(text)%20{%20p%20=%20nd.createElement(%22p%22);%20p.appendChild(nd.createTextNode(text));%20return%20p;%20}%20function%20makePre(text)%20{%20p%20=%20nd.createElement(%22pre%22);%20p.appendChild(nd.createTextNode(text));%20return%20p;%20}%20nd%20=%20window.open().document;%20ndb%20=%20nd.body;%20if%20(!window.getSelection%20||%20!window.getSelection().rangeCount%20||%20window.getSelection().getRangeAt(0).collapsed)%20{%20nd.title=%22Generated%20Source%20of:%20%22%20+%20location.href;%20ndb.appendChild(makeParagraph(%22No%20selection,%20showing%20generated%20source%20of%20entire%20document.%22));%20ndb.appendChild(makeHR());%20ndb.appendChild(makePre(%22%3Chtml%3E\n%22%20+%20document.documentElement.innerHTML%20+%20%22\n%3C/html%3E%22));%20}%20else%20{%20nd.title=%22Partial%20Source%20of:%20%22%20+%20location.href;%20ndb.appendChild(makePre(getSelSource()));%20};%20void%200
Если интересен сам скриплет, то все должно быть в одну строчку без переносов, а так - готовое решение javascript
Отсутствует
Всем привет.
Сделал в аддоне поиск слова на странице и его выделение через nsIFind.
Но когда использую .Find() - можно ввести только одно слово.
Можно как-то сделать такой поиск не по одному слову, а по нескольким сразу? М.б. через RegExp или еще как-то?
Отредактировано Snipe (11-03-2009 15:31:43)
Отсутствует
Можно как-то через event, по событию load для нового таба получить document этого таба?
Когда загружаемый таб открыт поверх остальных - все просто:
var doc = getBrowser().contentDocument;
Но мне надо получить содержимое таба, который не текущий. Например как после нажатия колесом мышки на ссылку.
Отсутствует
Можно как-то через event, по событию load для нового таба получить document этого таба?
Если сам таб не нужен, примерно так:
... if (event. originalTarget. nodeName == "#document") { var loc = event. originalTarget. location. href; if (loc. substr (0, 32) == "http://forum.mozilla-russia.org/") { var doc = event. originalTarget; ...
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А как сделать настройки для расширения через кнопку "настройки", которая показывается под каждым расширением в списке расширений?
Условно говоря XUL-страница под настройки у меня уже есть, но я ее запускаю с интерфейса самого расширения. Не хочу чтоб кнопка под настройки место занимала.
Отредактировано Snipe (18-03-2009 12:06:42)
Отсутствует