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

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

Разработка » Скрыть вкладку » 09-12-2010 21:10:06

ECartman пишет

т.е мне нужно без отображения   загрузить  страницу  что бы при этом  сработал javascript  загружаемой страницы

Для этого не обязательно создавать вкладку. Можно создать скрытый элемент browser (с аттрибутом collapsed=true и type=content), и в него загрузить нужную страницу.

Примерно так:

[code]    // Создаём скрытый элемент browser:
    var windowMediator = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator);
    var _window = windowMediator.getMostRecentWindow("navigator:browser");

    var docroot = _window.document;
    var shadow = docroot.createElement('browser');
    shadow.setAttribute("collapsed", true);
    shadow.setAttribute("type", "content");

    // Вставляем браузер в иерархию окна:
    docroot.documentElement.appendChild(shadow);

    // Важно - останавливаем загрузку страницы по умолчанию:
    shadow.webNavigation.stop(Components.interfaces.nsIWebNavigation.STOP_NETWORK);

    sha

Разработка » Определение полос прокрутки для selectedTab.linkedBrowser » 07-12-2010 18:48:16

После суток ковыряния DOM Inspector'а решения всё-таки было найдено. Если кому интересно:

Выделить код

Код:

var win = gBrowser.contentWindow;

        // Показывается ли вертикальная полоса прокрутки?
        var vscroll = (win.scrollMaxY !== 0);

        // Показывается ли горизонтальная полоса прокрутки?
        var hscroll = (win.scrollMaxX !== 0);

Разработка » Определение полос прокрутки для selectedTab.linkedBrowser » 06-12-2010 14:13:23

Доброго дня всем,

можно ли как-то определить, показываются ли для активного браузера (gBrowser.selectedTab.linkedBrowser) полосы прокрутки? Может свойства есть какие-то?

Сейчас определяю как (для вертикальной полосы прокрутки):

Выделить код

Код:

var vscroll = (browser.clientHeight < doc.documentElement.scrollHeight);

- но это ненадёжно, и не работает для XUL-контента.

Как быть?

Разработка » Как отследить конец записи в nsIOutputStream? » 15-11-2010 20:55:18

Всем доброго дня,

ситуация следующая: записываю в nsIServerSocket большой кусок данных через его output stream:

Выделить код

Код:

onSocketAccepted: function(serverSocket, clientSocket)
{
    this.clientSocket = clientSocket;

    this.outputStream = clientSocket.openOutputStream(0, 0, 0).QueryInterface(that.Ci.nsIAsyncOutputStream);

    ...

    this.outputStream.write(..., ...)

Данные пишутся в несколько заходов.

Мне надо после окончания записи закрыть соединение. Но как отследить это окончание? asyncWait/onOutputStreamReady не помогают - onOutputStreamReady иногда вызывается, когда часть данные ещё не отдана в сокет. setEventSink на сокете тоже не помогает - почему-то onTransportStatus не вызывается после записи последнего куска.

Может есть какое-то решение? Заранее спасибо.

Разработка » POST-редирект » 27-01-2010 16:00:21

Всем привет,

ситуация такая: мне в своём расширении надо легализовать POST-редирект. То есть я отсылаю POST-запрос, оттуда приходит 302, и мне надо отослать по новому адресу тот же POST запрос (браузер по умолчанию конвертирует в GET - в целях безопастности, видимо).

Как это сделать? вроде через http-on-modify-request, но как полностью клонировать оригинальный POST-запрос?

Заранее большое спасибо.

Разработка » Возможно ли сделать следующее...? » 11-12-2009 18:04:41

Судя по -

Eternity_aoi пишет

У нас есть в Инструментах пункт меню, по нажатию которого на этой страничке генерируется ID

- речь всё-таки идёт о эмуляции клика. Я в таких случаях использую скрытый iframe, в который гружу нужную страницу, а дальше - дело техники.

Разработка » Как удалить рамку у xul:tree? » 20-11-2009 04:52:00

vladmir пишет

импотент надо добавлять, чай

Неужто вы думаете, что я этого не попробовал :)

Решение, если кого интересует:

Выделить код

Код:

#mytree
{
    -moz-appearance: none !important;
    border: 0px;
}

Разработка » Как удалить рамку у xul:tree? » 19-11-2009 00:39:54

Здравствуйте уважаемые,

никак не могу удалить рамку (border) вокруг элемента tree. Несмотря на:

Выделить код

Код:

#mytree
{
    border: 0px;
}

рамка не исчезает, и DOM Inspector показывает в Computed Styles, что элемент всё равно имеет border-left-width равный 1. Стили правильные,проверял.

Что делаю не так?

Разработка » dispatchEvent + flash = fail » 12-11-2009 00:50:54

Здравствуйте уважаемые,

в расширении есть кнопка, которая добавляет букву A в текстовое поле, имеющее фокус. Код:

Выделить код

Код:

var text = document.commandDispatcher.focusedElement;
        var event = document.createEvent("KeyboardEvent");
        var code  = 'A'.charCodeAt(0);

        event.initKeyEvent('keydown',  false, false, null, false, false, false, false, code, code);
        text.dispatchEvent(event);
        event.initKeyEvent('keypress', false, false, null, false, false, false, false, code, code);
        text.dispatchEvent(event);
        event.initKeyEvent('keyup',    false, false, null, false, false, false, false, code, code);
        text.dispatchEvent(event);

Это работает со всеми INPUT и TEXTAREA полями. Но: не работает с текстовыми полями, являющимися частью Flash-виджетов. Если флэш имеет фокус, то событие успешно диспатчится - но буквы не появляется.

Тестировал здесь, раздел Contact me.

Разработка » Плавающая панель + Firefox 3.6 » 03-11-2009 14:35:46

Ну собсно, на 1м скрине видно, что надпись "Drag It!" уходит под таббокс.

03-11-2009 14:36:05
Thanks anyway.

Разработка » Плавающая панель + Firefox 3.6 » 03-11-2009 14:02:31

Тестовое расширение: http://webfile.ru/4054614

В Firefox 3.5 вы увидите серую панель с надписью "Drag It!" - за неё можно таскать панельку.

В Firefox 3.6, чтобы увидеть панель, вам возможно понадобится уменьшить высоту окна браузера - панелька вылезет из-под окна контента.

Разработка » Плавающая панель + Firefox 3.6 » 03-11-2009 13:07:06

Splurov пишет

Выложите куда-нибудь расширение?

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

Разработка » Плавающая панель + Firefox 3.6 » 03-11-2009 12:25:31

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

Давным-давно я сделал для одного расширения XUL-панельку:

Выделить код

Код:

<vbox id="appcontent">
        <vbox id="my-custom-panel" persist="style" hidden="true">
            ...
        </vbox>
    </vbox>

Всё это дело (это, на самом деле, виртуальная клавиатура) "летало" над контентом открытых страниц.

Но тут вышла бета 3.6, и случилась неприятность - что ни делаю, созданная XUL-панель почему-то прячется за tabbrowser'ом, и вытащить её "на передний план" не представляется возможности.

Кто-нибудь сталкивался с таким? Очень хотел бы увидеть рабочий примерчик, может есть какие расширения с плавающими XUL-панелями?

Заранее спасибо.

Разработка » Все слова на странице » 12-09-2009 09:53:17

Други, есть следующая задачка: по DOMContentLoaded разобрать страницу, и получить массив, состоящий из всех слов на странице. Может у кого уже есть готовый алгоритм? Заранее спасибо.

Разработка » Загрузка страницы: почти DOMContentLoaded, но... » 06-09-2009 04:17:35

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

есть у меня расширение, которое ждёт, пока загрузится страница (по DOMContentLoaded), потом парсит эту страницу и подсвечивает элементы p и div. Всё просто.

Всё замечательно работает, пока мы не загружаем действительно тяжёлые страницы, например lemonde.fr. Ждать загрузки всего DOM приходится ну уж очень долго.

Есть ли какая-то возможность не ждать загрузки всего DOM, а делать парсинг по мере загрузки страницы?

Заранее спасибо.

Разработка » Получение списка установленных дополнений » 06-09-2009 04:13:23

> проверять необходимо у посетителей сайта

Скрипт со страницы не может получить доступа в сhrome пользователя. Так что таким макаром - никак.

Разработка » Как определить текущую локаль расширения? » 01-09-2009 20:42:05

Anton пишет

Для пакета можно узнать.

Во! То что надо, спасибо Антон!

Разработка » Как определить текущую локаль расширения? » 31-08-2009 06:20:53

Здравствуйте форумчане.

Положим у меня русскоязычный файрфокс (т.е. локаль браузера - ru-Ru), и я на него устанавливаю расширение, имющее только en-Us локализацию. В этом случае, очевидно, для данного расширения будет использоваться DTD от en-US.

Вопрос вот в чём - можно ли, и если можно - как, узнать, какую локаль использует расширение с данным ID? Заранее спасибо.

Разработка » Получение координат текстовой ноды » 14-08-2009 17:19:44

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

Положим у нас есть некий HTML-документ. В этом документе - параграфы с неким текстом. Скриптом (из расширения) я выделил ссылки на текстовые ноды (nodeType == 3) внутри страницы.

А теперь - вопрос: как найти текущие координаты и размеры (top/left/width/height) текстовой ноды? Именно текстовой, не родителя.

Очевидный способ - временно упаковать текстовую ноду в span, но во многих случаях этот способ не подходит - мешают CSS-стили страницы...

Разработка » Получение текста на странице » 09-08-2009 00:52:10

С помощью функций getElementById, getElementsByTagName и т.д. можно получить ссылки на соответствующие поименованные ноды (по id, тэгу).

А можно ли получить ссылки на все текстовые ноды на странице?

Разработка » FF3.5 + webcam » 08-07-2009 09:44:00

2Крошка Ру: как раз самый нежелательный вариант. К тому же флёш, а не <video>.

Неужто нет какого-то stand-alone решения проблемы?

Разработка » FF3.5 + webcam » 08-07-2009 05:52:49

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

Положим у пользователя есть веб-камера. Я хочу на странице, скачанной пользователем, показать видео-поток с этой камеры, причём потом мне нужен в формате Ogg Theora (чтоб можно было воспользоваться тэгом video).

Можно ли это как-то сделать? Через расширение, сторонние проги, не важно как?

P.S. мне не нужно гнать траффик в сеть - я хочу просто на странице показать юзеру видео с его же камеры.

Разработка » HTML5 и video streaming » 05-07-2009 22:18:38

cr@nk пишет

Вроде тут было
http://forum.mozilla-russia.org/viewtopic.php?id=36046

Не в кассу, увы.

Разработка » HTML5 и video streaming » 05-07-2009 09:32:11

Как известно, Firefox 3.5 понимает тэг video и умеет воспроизводить видео в формате Ogg (Theora). Посему 2 вопроса к форумчанам:

1. Я успешно засунул в страницу видео-файлик, который у меня находится на сервере. А может ли Firefox воспроизводить потоковое видео (из какого-либо медиа-сервера?)

2. Если да - есть ли где тестовый ogg-поток?

Заранее спасибо.

Board footer

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