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

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

Разработка » Как правильно добавить свой пункт в контекстное меню » 24-09-2009 14:06:27

А как узнать куда пользователь правой кнопкой нажал?

UPD document.popupNode

Разработка » Вопросы (и ответы) по разработке расширений » 24-04-2009 17:08:59

Al_H пишет

Snipe, метод scrollTo(

x

,

y

);

alert($('wearherIfr').scrollTo); выдает undefined

Разработка » Вопросы (и ответы) по разработке расширений » 24-04-2009 11:43:42

И снова здравствуйте.
У меня в аддоне есть погода. При нажатии хочу, чтоб появлялось окошко с погодой на несколько дней вперед. Решил сделать это через iframe, примерно так:

Выделить код

Код:

<menupopup id="wearherMenu" style="padding:-50px;">
     <iframe id="wearherIfr" src="http://" type="content" style="overflow:hidden;width:400px;height:200px;padding-left:-50px;"/>
</menupopup>


wBlock.setAttribute('popup', 'wearherMenu');

Можно как-то документ в ifram'e прокрутить на нужный кусок документа?

Разработка » Вопросы (и ответы) по разработке расширений » 06-04-2009 11:13:54

Anton пишет

Snipe

Возможно как-то из одного окна браузера получить доступ к JavaSctipt'у расширения другого окна?

Возможно. Способов реализации несколько:
1. nsIWindowMediator. getMostRecentWindow (...) / nsIWindowWatcher. getWindowByName (...) или
2. nsIObserverService. notifyObservers (...) или
3. собственная компонента для взаимодействия между скриптами, работающими в разных окнах

Какой выбрать лучше - зависит от задачи.

Спасибо, второй вариант отлично подошел.

Разработка » Вопросы (и ответы) по разработке расширений » 02-04-2009 11:22:03

Возможно как-то из одного окна браузера получить доступ к JavaSctipt'у расширения другого окна?
Окна вообще никак не связаны, просто браузер два раза открыт.

Разработка » Вопросы (и ответы) по разработке расширений » 27-03-2009 09:20:57

Anton пишет

Там же вроде есть нужный код, на процитированной странице ?

Разобрался, спасибо. %)

Теперь опять к настройкам.
Сделал настройки через меню всех аддонов.
И по сохранению мне надо обновить данные в аддоне.
В настройках вызываю функцию обновления через window.opener.opener., т.е. как раз попадаю в "окно" с аддоном, и эта функция обновляет мне всё что нужно.
Но работает так, только если настройки были открыты через меню, если как-то еще - обновление не происходит. Потому что opener = null.

Можно как-то получить доступ к функции обновления (т.е. к основному окну браузера из окна настроек) не через window.opener?

Разработка » Вопросы (и ответы) по разработке расширений » 23-03-2009 18:50:43

Anton пишет

Смотреть надо в сторону https://developer.mozilla.org/En/DOM/Document.styleSheets, я думаю.

Вот код, который собирает все правила из первого stylesheet текущего документа:
...
Где-то среди cssRules. item (j) возможно, найдётся и "А{...}".

Спасибо, попробую так.
Еще вопрос, ставлю куки примерно так:

Выделить код

Код:

var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
    var cookieUri = ios.newURI("http://.mysite.com", null, null);
    var cookieSvc = Components.classes["@mozilla.org/cookieService;1"].getService(Components.interfaces.nsICookieService);

    cookieSvc.setCookieString(cookieUri, null, "your_key=your_value;", null);

И на сайте ставлю куки (.mysite.com).
В итоге получается, две разные куки:
с сайта: "домен: .mysite.com"
с расширения: "узел: mysite.com"

Все что нашел на MDC:

If you do not explicitly specify a domain in the cookieString then the domain will be derived from the cookieUr

Разработка » Вопросы (и ответы) по разработке расширений » 23-03-2009 11:13:20

можно, перебирайте свойство (не атрибут) style нужного объекта

window.getComputedStyle

Получается немного не то:
1. Если стили прописаны, но на странице нет ссылки - не смогу узнать.
2. Если стили прописаны для всех ссылок отдельно, а для классов (например меню) отдельно. Придется все это отсеивать.

Если совсем точно, мне нужно узнать, есть ли где-нибудь в CSS строчка А{...}

Как, например FireBug показывает?

Выделить код

Код:

a {                                                             mail-spl...h3.css?27 (line 8)
    color:#0857A6;
    text-decoration:underline;
}

Разработка » Вопросы (и ответы) по разработке расширений » 20-03-2009 16:33:42

Можно как-то узнать, есть ли на данном сайте стили на определенный тег?

Т.е. где-нибудь в CSS написано .a {color:red;text-decoration:none} и т.п.
Можно как-то силами расширения узнать, что на данном сайте у тегов "а" есть прописанный стиль?

Разработка » Вопросы (и ответы) по разработке расширений » 20-03-2009 09:22:37

Crazy-EyE пишет

А как сделать настройки для расширения через кнопку "настройки", которая показывается под каждым расширением в списке расширений?

optionsURL в install.rdf

Спасибо огромное, то что надо. Читал эту статью давным давно - пропустил и забыл этот пункт. :(

А у меня вот такой вопрос еще назрел.
Я на странице определенного сайта с помощью расширения добавляю ссылки, через DOM.
Можно как-то к этим ссылкам сделать всплывающие подсказки?
Title и tooltextbar не работают. :/

Разработка » Вопросы (и ответы) по разработке расширений » 18-03-2009 12:04:20

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

Разработка » Сохранение кириллициы в файле через расширение. » 17-03-2009 14:23:38

В общем у меня все что возможно стоит в кодировке UTF-8.
Текст с сервера тоже приходит в кодировке UTF-8.
Это текст расширение сохраняет в файл, чтоб каждый раз не дергать сервер.
Но сохраняется русский текст непонятно как:

 +
18BC@85=B
2AB@0;8O
2B><8@
=B828@CA =B8A?0<

Что делать? М.б. есть уже такая тема, но я не смог найти - буду благодарен за ссылку.

Разработка » Вопросы (и ответы) по разработке расширений » 13-03-2009 10:31:13

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

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

Разработка » Вопросы (и ответы) по разработке расширений » 11-03-2009 15:14:43

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

Разработка » Вопросы (и ответы) по разработке расширений » 26-02-2009 16:19:40

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

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

Разработка » Вопросы (и ответы) по разработке расширений » 26-02-2009 15:30:12

Crazy-EyE пишет

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

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

Разработка » Вопросы (и ответы) по разработке расширений » 25-02-2009 18:26:33

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

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

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

Разработка » Вопросы (и ответы) по разработке расширений » 25-02-2009 17:59:14

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

Разработка » Вопросы (и ответы) по разработке расширений » 25-02-2009 15:03:32

Crazy-EyE пишет

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

Progress Listeners

(There is currently no text in this page)

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

Разработка » Вопросы (и ответы) по разработке расширений » 25-02-2009 11:02:38

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);

Разработка » Вопросы (и ответы) по разработке расширений » 24-02-2009 16:17:06

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

Выделить код

Код:

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

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

Разработка » Вопросы (и ответы) по разработке расширений » 24-02-2009 12:39:14

Anton пишет

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

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

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


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

Разработка » Вопросы (и ответы) по разработке расширений » 19-02-2009 14:43:40

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

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

Разработка » Вопросы (и ответы) по разработке расширений » 05-02-2009 19:19:09

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

Выделить код

Код:

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

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

Board footer

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