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

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

Разработка » XMLHttpRequest, FireFox 3 и privileges » 10-07-2008 19:45:59

Здраствуйте,

толкнулся со следующей проблемой: имеется расширение разработанное под FF2.
В коде расширения используется '@mozilla.org/xmlextras/xmlhttprequest;1' для обращения к web-сервису
столкнулся с тем, что на FF3 метод после вызова nsIXMLHttpRequest::send не попадаю на установленный onreadystatechange обработчик, а каким то образом вылетаю в другое место кода расширения, но с помощью venkman-а проследить как туда попадаю не удалось, бряка не срабатывает
такое ощущение, что что-то где-то бросает эксепшн, но не сам send, он затраен и в catch не попадаю
полазив в инете нашёл что-то про изменение привилений на XMLHttpRequest в FF3, но как именно поступать в моей ситуации не понял

код отправки запроса (реализован в методе XPCOM javascript компоненты):

[code]    const cCXMLHTTPRequest = '@mozilla.org/xmlextras/xmlhttprequest;1';
    const cIXMLHttpRequest = Components.interfaces.nsIXMLHttpRequest;

    var self = this;
    var req  = Components.classes[cCXMLHTTPRequest].createInstan

Разработка » заголовок окна при открытии через window.open » 07-09-2007 18:56:40

shutnik пишет

cesspit

честно говоря из всего чего читал (напр. http://developer.mozilla.org/ru/docs/XUL_Tutorial:Creating_a_Window) понял, что если указан пар-р chrome, то загружаться в окно должен именно xul документ, нигде не видел загрузку html в chrome-окно

ммм. а я почему-то не нашёл там такого.

поскольку вы открываете окно из расширения, то можно создать небольшой оверлей и в него включить XUL:browser.

спаcибо за совет, так и сделал

p.s. Со знаменем красным пройтись по луне, не знаю как вам, но не терпится мне
      Красное знамя, красное знамя, хочется мне, хочется мне )))

Разработка » заголовок окна при открытии через window.open » 03-09-2007 15:38:17

честно говоря из всего чего читал (напр. http://developer.mozilla.org/ru/docs/XUL_Tutorial:Creating_a_Window) понял, что если указан пар-р chrome, то загружаться в окно должен именно xul документ, нигде не видел загрузку html в chrome-окно
как я говорил, если сказать chrome, загрузка проходит нормально но в качестве побочных эффектов я получаю отсутствие ссылок в одном из фреймов html-страницы (у меня там страница имитирующая виндовский hh.ee, в левом фрейме где типа содержание ссылки есть, работают, но не подсвечиваются. в правом там где содержание - не работают и не подсвечиваются, т.е. как будто их вообще нет
а если chrome не указывать, то открывается обычное окно браузера, и это наскольбко я понимаю мне и надо, если бы не url в заголовке
не подскажите как это обойти не используя chrome? пробовал сразу после открытия окна выставлять ему title - не работает (

Разработка » заголовок окна при открытии через window.open » 03-09-2007 14:57:31

shutnik пишет

cesspit

если я начинаю использовать 3й аргумент для задания размеров окна и.т.п., в этом случае заголовок окна принимает вид:

"chrome://myextension - Заголовок_из_html - Mozilla Firefox"

а какие конкретно аргументы поставляете? думаю, нужно добавить chrome

методом тыка выяснил, что если подставить хоть какой-нибудь аргумент, заголовок принимает такой вид, если передавать пустую строку в качестве третьего аргумента или не указывать его вообще, то заголовок такой как и д.б., т.е. только то что прописано в  title у документа
chrome насколько я понял надо указывать когда нужно загрузиь xul-документ а не html (я пробовал, у меня в этом случае на одном из фреймов html-страницы пропадают ссылки), хотя заголовок в этом случае действительно правильный

Разработка » заголовок окна при открытии через window.open » 03-09-2007 11:05:53

здравствуйте, в моем расширении есть html-файл справки который я вызываю через window.open("chrome://myextension/...",...)
в коде этого файла есть title, который правильно отображается в заголовке окна, если я вызываю window.open с двумя аргументами:
window.open("chrome://myextension/...", "");

если я начинаю использовать 3й аргумент для задания размеров окна и.т.п., в этом случае заголовок окна принимает вид:

"chrome://myextension - Заголовок_из_html - Mozilla Firefox", что мне непонятно и не очень смотрится, подскажите пожалуйста, чем вызвано такое поведение и как можно добиться чтобы при использовании последнего аргумента window.open, в заголовок выносился только заголовок html-страницы

Спасибо

Разработка » как выбирается локаль расширения? » 25-06-2007 19:07:34

stoneflash пишет

или по локализации браузера?

по ней.
параметр general.useragent.locale в about:config

спасибо большое!

Тема закрыта

Modex

Разработка » как выбирается локаль расширения? » 25-06-2007 18:55:36

здравствуйте, подскажите плз.,
если у меня в расширении несколько локализаций, как выбирается рабочая: по переменной окружения ОС или по локализации браузера?
что-то не нашел нигде инфы по этому поводу

Спасибо

Новости » PROMT Internet 7.0 для Mozilla Firefox » 27-09-2006 00:06:54

Фтопыч пишет

До меня не доходит, на фиг вообще нужен этот Промт Интернет, когда страницы в онлайне может переводить бесплатный сервис от самого же промта.

Например тут:

http://www.translate.ru/srvurl.asp?lang=ru

Или прямо с главной страницы www.promt.ru

Кто-нибудь может объяснить смысл?

при переводе через online-сервис:

1. нужен сам сервис, т.е. д.б. доступен
2. жрётся трафик
3. у сервиса есть ограничения
4. используются настройки перевода такие какие они есть на сервере
5. смотрим банеры

расширение - это локально установленная система перевода(вот почему инсталлер стока и весит), у которого отсутствуют все вышеуказанные минусы + возможностей по настройке локальной системы гораздо больше => перевод качественнее.

P.S. хочу сказать большое спасибо Anton-у и многим другим, чьи ответы в форуме очень помогли при разработке сего расширения.

Разработка » <frame> и chrome:// » 06-09-2006 12:04:39

mmx пишет

Кто подскажет почему в src фрейма не грузится chrome://blablabla/content/bla.htm ?

вот так, все ок
<html><head></head><frameset cols="*"><frame src="http://mail.ru"></frameset></html>

а вот так, лажа...
<html><head></head><frameset cols="*"><frame src="chrome://blablabla/content/bla.htm"></frameset></html>

chrome://blablabla/content/bla.htm - существует и в строке браузера легко открывается.

может я чё то не понимаю..., есть протокол http и есть протокол chrome. Тот html, в который вы записали ссылку "chrome://..." находится в html-файле(судя по тегам <html>)? Если да, то просматриваете вы его как "http://somefile.html"? Если да, то что же вы хотите? Я думаю, очевидно, что если написать что-то типа <frame src="ftp://.... или <frame src="gopher://.... , то ничего путного не выйдет.
По-моему так.

Разработка » Сделать что-то при загрузке содержимого страницы. » 30-08-2006 14:05:44

так как будто правильней

странно, а у меня getBrowser().addProgressListener и без второго аргумента нормально привязывался

когда подписываешься на события через getBrowser(), то события приходят:
1)когда изменился  STATE в текущей вкладке
2)когла переходишь на другую вкладку,
т.е. getBrowser() возвращает объект типа браузер для текущей вкладки, при изменении текущей вкладки, он видимо тоже считает нужным нас об этом проинформировать.

чтобы реагировать на события какой-либо конкретной вкладки надо, наверное, делать так:

Выделить код

Код:

getBrowser().getBrowserForTab(SomeTab).addProgressListener(ProgressListener, STATE_START);

тока проблема в том как найти эту вкладку. я когда подписывался на события вкладки сам их открывал:

Выделить код

Код:

SomeTab = getBrowser().addTab("http://...");

тебе же наверное придётся подписываться на событие открытия новой вкладки

Разработка » Сделать что-то при загрузке содержимого страницы. » 23-08-2006 19:32:30

[code]const STATE_STOP = Components. interfaces. nsIWebProgressListener.STATE_STOP;
const STATE_NETWORK = Components.interfaces.nsIWebProgressListener.STATE_IS_NETWORK;

var progressListener=
{
    QueryInterface: function (aIID)
    {
        if (aIID. equals (Components. interfaces. nsIWebProgressListener) ||
            aIID. equals (Components. interfaces. nsISupportsWeakReference) ||
            aIID. equals (Components. interfaces. nsIXULBrowserWindow) ||
            aIID. equals (Components. interfaces. nsISupports))
            return this;
        throw Components. results. NS_NOINTERFACE;
    },
onLocationChange:function (webProgress, request, location){},
onProgressChange:function(webProgress, request, curSelfProgress, maxSelfProgress, curTotalProgress, maxTotalProgress){},
onSecurityChange:function(webProgress, request, state){},
onStateChange:function(webProgress, request, stateFlags, status){

        var STOP = (stateFlags & STATE_STOP) != 0;
        var NETWORK = (stat

Разработка » XPCOM компонента и msvcr71.dll » 17-08-2006 11:30:50

вроде как от 2003, как раз в system32 и надо её пихать. Это от 2005й (8.0) mfc и сишный рантайм лежат в папке %windir%\WinSxS, и грузятся по манифесту, который лежит в ресурсах бинарника. И то такой фокус работает тока в >=WinXP. Честно говоря не видел, чтобы в MSDN было написано, что нельзя кидать msvcr*.dll в system32, не дашь ссылочку?
Чтобы не зависить от msvcr71.dll можно прилинковаться статически :), честно говоря я не очень догнал, ты хочешь избавиться от msvcr71.dll чтобы осталась тока зав-ть от msvcrt.dll или динамически прилинковаться к более ранней версии msvcr?
и какой у тебя тип проекта?

Разработка » получение выделения на странице при отсутствии фокуса на выделении » 15-08-2006 14:32:52

Masletso пишет

а что если сохранять всё время выделение? то есть при потери фокуса страницы чтоб он запомнил выделение. И потом ты его будешь использовать как тебе надо...

ну вообще, вариант. Но я, если честно рыл в сторону нахождения окна с html-страницей, и вызова getSelection() у него. Пока эксперементирую со свойством "content", похоже то что нужно. Насколько я понимаю это и есть окно в котором расположен html(ну или другой какой) - документ.

Разработка » получение выделения на странице при отсутствии фокуса на выделении » 15-08-2006 11:06:39

выделенный текст(на странице в браузере) я получаю через document.commandDispatcher.focusedWindow.getSelection(), вследствии чего при уходе фокуса из окна браузера куда-нибудь (в моём случае он уходит, когда я выбираю menulist в тулбаре своего расширения) вышеуказанная конструкция возвращает пустую строку вместо выделения. Такой способ получения выделения я скатал, кажется, из Lingvo-online, другого не знаю :). Можно как-нибудь получить выделение вне зависимости от положения фокуса?

Разработка » можно ли сделать ресайзящийся тулбар? » 09-08-2006 11:09:31

Anton пишет

Вот здесь: http://forum.mozilla-russia.org/viewtop … 84#p116684 kosticus разместил ссылку на FireBug расширение, у которого есть панель над статусбаром - там, вроде, <vbox id="appcontent" перекрывается.

Спасибо за ссылку, Антон. Всё старательно скатал :). Работает!
Хотел ещё вопрос задать, в моём расширении (перевод страниц) в тулбаре два menulist (как в TranslateBar или промтовском плагине для IE). Проблема следующая: если польз-ль выделил текст, потом захотел что-то поменять с помощью этих menulist, то при выборе элемента menulist фокус переходит из страницы на сам menulist, и, например, если польз-ль что-то выделил, потом решил поменять направление перевода, и после этого нажимает на кнопку "перевести выделенное", то в обработчике, при попытке получить выделение через document.commandDispatcher.focusedWindow.getSelection (); я ест-но получаю пустую строку. Польз-лю при

Разработка » FireFox 2, совместная установка с 1.5 » 08-08-2006 18:33:54

Не подскажите, есть ли уже информация по поводу того, будет ли 2й фаерфокс устанавливаться поверх 1.5 или в ту же папку? и в реесте виндовом, для 1.5 и 2.* будут отдельные ключи или 2й будет удалять записи о 1.5 как щас это делает напр-р 1.5.0.i+1 при установке на 1.5.0.i?
мне это важно с точки зрения setup-а.

Спасибо.

Разработка » можно ли сделать ресайзящийся тулбар? » 07-08-2006 11:55:55

Anton пишет

1. Вот такой вот

Выделить код

Код:

var sb = document. getElementById ("status-bar");
var tb = document. createElement ("toolbar");
tb. setAttribute ("id", "mytoolbar3");
sb. parentNode. insertBefore (tb, sb);
var sp = document. createElement ("splitter");
sp. setAttribute ("id", "mysplitter3");
sp. setAttribute ("orient", "vertical");
tb. parentNode. insertBefore (sp, tb);

из кнопки custombuttons сооружает ресайзящийся тулбар по низу окна.

Спасибо, Антон. Идею понял. Тока не получается (точнее получается не так) нарисовать такой тулбар на xul-е. Код:

Выделить код

Код:

<window id="main-window">
    <toolbar id="TranslatedTextToolbar" hidden="false" align="stretch" fullscreentoolbar="true"
      insertbefore="status-bar" orient="horizontal">
    </toolbar>
    <splitter id ="TranslatedTextSplitter" hidden="false" insertbefore="TranslatedTextToolbar"/>
  </window>

приводит к появленю сплиттера под статус-баром а тулбара над ним

Разработка » можно ли сделать ресайзящийся тулбар? » 05-08-2006 17:20:55

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

и ещё, хотел спросить. у меня так получается, что когда в тулбаре есть кнопка типа menupopup у которой задан tooltiptext, то при наведении мышки на пункты этого меню - всплывает тултип, даже если его у элемента меню (menuitem-а) нету, причём в качестве текста тултипа вылезает текст последнего всплывавшего тултипа (или пустая строка, если такого не было). Заметил такую фичу не только в своём расширении, ещё видел в каком-то, названия к сожалению не помню. Это баг?

Спасибо.

Новости » Конфликта между Mozilla.Ru и Компанией ПРОМТ больше нет » 23-06-2006 17:58:34

AD_EGO пишет

RED
Тут даже гадать не надо! Это будет именно ПЛАГИН! И скорее всего он будет частью флагманского продукта ПРОМТ. А посему, нужно ждать дальнейших палок в колеса сторонних разработчиков. И все это будет невинно маскироваться сменой движка. Что-то похожее было у Мелкососа со стандартами Windows Media, когда при наличии кодеков воспроизведение через стороннюю программу шло через пень-колоду.

это будет расширение.

Новости » Компания ПРОМТ вынудила прекратить разработку расширения для Firefox » 21-06-2006 11:07:23

LattyF пишет

cesspit, а есть причина? :angel:

я работаю в Промте. ваще боялся писать в форум, думал получу вечный бан. :)

Новости » Компания ПРОМТ вынудила прекратить разработку расширения для Firefox » 20-06-2006 19:13:41

зер гуд что всё устаканилось :)
а то я уж начал переживать, что теперь мои посты на mozilla.ru будут игнорится и удалятся как вражеские :)

Разработка » открыть несколько табов и отслеживать загрузку страниц в них » 24-05-2006 16:33:10

Elena пишет

Здравствуйте. Я только начинаю разбираться с расширениями для firefox, и прошу совета.
Есть такая задача: нужно из расширения открыть в нескольких табах страницы, подождать пока они загрузятся, обработать (получить url по которому загрузилось) и начать грузить следующую порцию страниц. Как отловить событие окончания загрузики страницы для конктерного таба? Как поставить каждому табу в соответствие event listener, таким образом чтобы из него можно было узнать в каком табе страница загрузилась?
Какие классы и методы надо использовать чтобы решить задачку?
Большое спасибо.

[code]var progressListener=
{
    QueryInterface: function (aIID)
    {
        if (aIID. equals (Components. interfaces. nsIWebProgressListener) ||
            aIID. equals (Components. interfaces. nsISupportsWeakReference) ||
            aIID. equals (Components. interfaces. nsIXULBrowserWindow) ||
            aIID. equals (Components. interfaces. nsISupports))
            return this;
        thr

Разработка » установка атрибута без установки фокуса » 18-05-2006 11:17:00

INFOMAN пишет
Выделить код

Код:

toolbarbutton[disabled="true"]:hover

?

да, спасибо, то что нужно

Разработка » установка атрибута без установки фокуса » 17-05-2006 19:53:08

http://forum.mozilla.ru/viewtopic.php?id=10032.

ну так я оттуда и скатывал :)
я хочу сделать типа подсветки кнопок на тулбаре
в обработчиках onmouseout, onmouseover я как раз и вызываю setAttribute\removeAttribute устанавливая стили с разными -moz-opacity. Но наткнулся на то, что при вызове setAttribute для кнопки со стилем "menu" исчезает это самое меню, то есть я увожу курсор с кнопки на пункт её меню, срабатывает onmouseout->setAttribute->меню исчезает.
попробовал сделать как предложил уважаемый INFOMAN, через hover. От эффекта перехода фокуса избавился, но у меня есть ещё один режим тулбара, когда все кнопки задизаблены. В этом режиме никакой подсветки кнопок не должно происходить, а если использовать hover, то она происходит, вот я и подумал, может есть какой-нибудь
#MyButton:disabled
наподобии hover, которая будет работать на автомате и перекрывать hover или может можно как-нибудь ограничить действие hover?

Разработка » установка атрибута без установки фокуса » 17-05-2006 18:40:57

INFOMAN пишет

Чтобы изменять состояние при наведении можно hover юзать, а не свои состояния задавать

Выделить код

Код:

#newsmonkey_about:hover
{
         -moz-image-region: rect(0px 16px 16px 0px);
}

спасибо, помогло
а нет случайно такого приёма чтобы менять стиль задизабленной кнопки?

Board footer

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