Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№15105-02-2009 19:19:09

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Хочу вызывать функцию при смене табов пользователем.
Сделал так:

Выделить код

Код:

window.addEventListener('select', 
  function(event) {
    if (event.originalTarget.tagName == 'xul:tabs') alert('test')
  }, 
false);

Вроде работает, но т.к. опыта мало..., вдруг есть какой-нибудь более правильный вариант?!

Отсутствует

 

№15206-02-2009 14:19:56

entropy
Участник
 
Группа: Members
Зарегистрирован: 18-01-2009
Сообщений: 5
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

В контекстном меню Лисы есть такой пункт как "Получить исходный код выделенного фрагмента". Подскажите, пожалуйста, как произвести эту операцию программно, в коде расширения, и получить этот исходник в переменную.

Отсутствует

 

№15319-02-2009 14:43:40

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Всем привет.
Можно ли как-то в аддоне узнать локальный ip адрес пользователя?

Уверенное "НЕТ" тоже будет хорошим ответом. :D

Отредактировано Snipe (19-02-2009 14:55:50)

Отсутствует

 

№15419-02-2009 20:17:11

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.0
Веб-сайт

Re: Вопросы (и ответы) по разработке расширений

Можно ли как-то в аддоне узнать локальный 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ентов на части порвет !!!

Отсутствует

 

№15520-02-2009 14:36:56

Eictol0n
Участник
 
Группа: Members
Зарегистрирован: 23-03-2007
Сообщений: 8
UA: Iceweasel 3.0

Re: Вопросы (и ответы) по разработке расширений

Подскажите, а возможно ли сделать и как следуешее - встроить функцию в DOM сайта ? в смысле хочу вызывать с сайта функцию скажем document.myDom.myFunction(); возвращающую/устанавливающие некие сеттинги заданные в sqlite на стороне пользователя. Я что-то поискал и не нашел где это описано.

Отсутствует

 

№15620-02-2009 18:58:15

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Отсутствует

 

№15724-02-2009 12:39:14

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Anton пишет

Можно ли как-то в аддоне узнать локальный ip адрес пользователя?

Есть такой вариант:

Не знаю, что делаю не так, но не работает, а try/catch выдает
Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIDNSService.resolve]


И еще вопрос, как узнать IP сайта, на который пользователь зашел?

Отредактировано Snipe (24-02-2009 12:50:08)

Отсутствует

 

№15824-02-2009 16:17:06

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Еще вопрос. У меня в аддоне событие происходит по загрузке страницы:

Выделить код

Код:

window.addEventListener(
  'load',
  function () {
    gBrowser.addEventListener('load', pageLoaded, true);
  },
  false
);

А можно как-то сделать, чтоб событие происходило не по окончании загрузки, а при начале.
Т.е. УРЛ уже поменялся, но страница не догрузилась и вот в это время...

Отсутствует

 

№15924-02-2009 16:22:26

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.0
Веб-сайт

Re: Вопросы (и ответы) по разработке расширений

Не знаю, что делаю не так, но не работает, а try/catch выдает
Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIDNSService.resolve]

Скорее, я ошибся с решением.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№16024-02-2009 18:31:57

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

А можно как-то сделать, чтоб событие происходило не по окончании загрузки, а при начале.

gBrowser.webProgress для всех табов или аналогично для конкретного browser

На всякий случай: есть еще DOMContentLoaded - когда загрузился только html, а картинки и т.д. - еще нет.

Отсутствует

 

№16125-02-2009 11:02:38

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Crazy-EyE пишет

А можно как-то сделать, чтоб событие происходило не по окончании загрузки, а при начале.

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)

Отсутствует

 

№16225-02-2009 12:58:22

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

м.б. есть где-то пример?

Progress Listeners

EDIT: исправил ссылку

Отредактировано Crazy-EyE (25-02-2009 21:35:48)

Отсутствует

 

№16325-02-2009 15:03:32

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Crazy-EyE пишет

м.б. есть где-то пример?

Progress Listeners

(There is currently no text in this page)

Но все равно спасибо, первый пост помог. Пока вроде работает, как выше писал.

Отсутствует

 

№16425-02-2009 17:59:14

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Совсем нубский вопрос.
Если я ставлю аддон, могу я как-то через него заодно добавить поисковый плагин?

Отсутствует

 

№16525-02-2009 18:22:24

ПротопопулуS
2,4716 THz на каждое из 64-х ядер...
 
Группа: Members
Откуда: Местное я
Зарегистрирован: 16-12-2008
Сообщений: 1515
UA: Firefox 3.1

Re: Вопросы (и ответы) по разработке расширений

А зачем через аддон? Поисковики и так ставятся неплохо... Вот отсюда :P


Продам: совесть, ответственность, вежливость, воспитанность. Недорого.

Отсутствует

 

№16625-02-2009 18:26:33

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

ПротопопулуS пишет

А зачем через аддон? Поисковики и так ставятся неплохо... Вот отсюда :P

НУ сам по себе поисковик не нужен без аддона, а лишние действия для пользователя (поставить отдельно поисковик и отдельно аддон) - тоже не хотелось бы.

Отсутствует

 

№16725-02-2009 21:34:57

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Snipe, упс, исправил.

НУ сам по себе поисковик не нужен без аддона, а лишние действия для пользователя (поставить отдельно поисковик и отдельно аддон) - тоже не хотелось бы.

Если внутри расширения сделать директорию /searchplugins и положить туда поисковик, думаю, будет работать (сам не пробовал). Application-specific Extension Files

В крайнем случае есть еще Multiple Item Packaging.

Отредактировано Crazy-EyE (25-02-2009 21:47:11)

Отсутствует

 

№16826-02-2009 15:30:12

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Crazy-EyE пишет

Если внутри расширения сделать директорию /searchplugins и положить туда поисковик, думаю, будет работать (сам не пробовал). Application-specific Extension Files

Спасибо, работает.

Отсутствует

 

№16926-02-2009 16:19:40

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

А можно как-то после установки расширения и соответственно поискового плагина с разрешения пользователя ставить плагин по умолчанию?

Как всегда, уверенное нет - тоже хороший ответ.

Отредактировано Snipe (26-02-2009 19:09:25)

Отсутствует

 

№17002-03-2009 14:06:27

ipSlicer
Участник
 
Группа: Members
Зарегистрирован: 25-02-2009
Сообщений: 6
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

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

Отсутствует

 

№17109-03-2009 08:04:13

entropy
Участник
 
Группа: Members
Зарегистрирован: 18-01-2009
Сообщений: 5
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

ipSlicer
Спасибо большое, сейчас попробую:)

Отсутствует

 

№17211-03-2009 15:14:43

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Всем привет.
Сделал в аддоне поиск слова на странице и его выделение через nsIFind.
Но когда использую .Find() - можно ввести только одно слово.
Можно как-то сделать такой поиск не по одному слову, а по нескольким сразу? М.б. через RegExp или еще как-то?

Отредактировано Snipe (11-03-2009 15:31:43)

Отсутствует

 

№17313-03-2009 10:31:13

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

Можно как-то через event, по событию load для нового таба получить document этого таба?
Когда загружаемый таб открыт поверх остальных - все просто:
var doc = getBrowser().contentDocument;

Но мне надо получить содержимое таба, который не текущий. Например как после нажатия колесом мышки на ссылку.

Отсутствует

 

№17413-03-2009 17:39:41

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.0
Веб-сайт

Re: Вопросы (и ответы) по разработке расширений

Можно как-то через 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ентов на части порвет !!!

Отсутствует

 

№17518-03-2009 12:04:20

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.0

Re: Вопросы (и ответы) по разработке расширений

А как сделать настройки для расширения через кнопку "настройки", которая показывается под каждым расширением в списке расширений?
Условно говоря XUL-страница под настройки у меня уже есть, но я ее запускаю с интерфейса самого расширения. Не хочу чтоб кнопка под настройки место занимала.

Отредактировано Snipe (18-03-2009 12:06:42)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]