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

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

Разработка » Передать фокус ввода locationbar'у » 23-04-2010 13:59:28

Добрый день, буду очень признательна за подсказку.
Можно ли как-нибудь из расширения передать фокус ввода в адресную строку? грубо говоря, эмулировать клик пользователя мышкой по строке адреса.
window.locationbar.focus() не работает, ругается что нет такой функции...

Разработка » открыть окно которое не отображается в таскбаре » 15-04-2010 20:30:33

Я наверное, не очень хорошо сформулировала. проблема в том что если дочернее окно открывать с параметром popup=1, то почем-то перестают приходить события onfocus родительскому окну при клике на него мышкой. Если popup=1 убрать, то обработчик onfocus нормально срабатывает,  но появляется инонка на панели задач.

Ну и по w.focus(); не передается фокус :(

Разработка » открыть окно которое не отображается в таскбаре » 15-04-2010 12:42:45

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

Разработка » открыть окно которое не отображается в таскбаре » 14-04-2010 14:48:47

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

Разработка » Событие сворачивания окна » 14-04-2010 13:13:56

про dependent  вопрос возник: в докуменатации написано

dependent: On Windows platforms, a dependent window does not show on the task bar. A dependent window also stays in front of the parent window.

но у меня оно все равно показывается в панели задач. При этом ведет себя правильно - соварачивается и закрывается вместе с родителем. что я делаю не так?  :)

Разработка » Событие сворачивания окна » 06-04-2010 21:21:47

Infocatcher пишет

Можно открыть зависимое окно (dependent).

спасибо, вроде то что надо.  жаль конечно что под маком оно не работает, но главное чтобы под виндой все было нормально

Разработка » Событие сворачивания окна » 03-04-2010 20:14:47

okkamas_knife пишет

Elena
http://forum.mozilla-russia.org/uploaded/WTRPZ.gif
красным помечена панель задач зелёным трей

Спасибо! покопаюсь.




Такие еще мысли возникли - у окна нет ли аттрибутов чтобы не показываться в панели задачь? А какое-нибудь событие при нажании на кнопки вверху в углу в заголовке окна?
смысл в том, что я создаю свое окно и оно должно вести себя так же как родительское - закрываться при закрытии главного окна (с этим проблем нет) и сворачиваться при сворачивании главного окна (с этим проблемы). В принципе, если мое окно не будет отображаться на панели задачь, то проблемы нет

Разработка » Событие сворачивания окна » 03-04-2010 19:22:32

okkamas_knife пишет

Elena
если именно в трей а не в панель задач то думаю стоит покопаться в расширении которое это делает

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

03-04-2010 19:41:43

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

Код:

window.addEventListener("blur", function(e) {
    var minimized = window.windowState == window.STATE_MINIMIZED;
    setTimeout(function() { throw minimized; }, 0);
}, true);

написала вот такую штуку

Выделить код

Код:

window.addEventListener("blur", MAIL.window_blur, false);
window_blur:function(evt){
        alert("window blur\n");
        if(window.windowState == window.STATE_MINIMIZED){
            //мой код
        }
},

но что-то событие при сворачивании окна не ловится

Разработка » Событие сворачивания окна » 02-04-2010 15:07:32

Добрый день.
нужно отлавливать событие сворачивания главного окна в трей. можно ли это как-нибудь сделать?
пробую onresize, при сворачивании в трей не работает.

Разработка » Взаимодействие Flash и расширения » 17-03-2010 15:07:03

SunnyDay пишет

Elena
Советую почитать про снятие ограничений безопасности через XPCOM)
http://www.intuit.ru/department/se/mozilla/16/10.html

спасибо за ссылку! а не подскажите, в случае с флешкой, которая внутри html документа, который внутри frame
какие должны быть параметры Iface и Prop для
user_pref("capabilities.policy.mypol.Iface.Prop","Keywords")?

Разработка » Взаимодействие Flash и расширения » 16-03-2010 09:35:02

SunnyDay пишет

>как из javascript получить доступ к функции которая описано внутри iframe

frame_window.wrappedJSObject.function_in_frame()

Спасибо большое! попробую так.

Еще возник такой вопрос - видимо параметры безопасности блокируют взаимодействие флешки и расширения.
т.е. если сюда http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html  добавить каталог в который установилось расширения то все работает нормально, если нет - то события из флешки в расширение не доходят.
Можно ли как-то сделать так чтобы не надо было добавалять каталог в доверенные? может быть на стороне флешки?  а то заставлять каждого пользователя лезть куда-то не очень хорошо...

Разработка » FF 3.6 всплывающее окошко без рамки (как panel) » 14-03-2010 07:05:38

Добрый день.
Есть тулбар, на тулбаре есть кнопка, при нажатии на кнопку показывается окошко с флеш плеером (выглядит это все как panel, но панель нельзя использовать потому что тогда не корректно обрабатываются клики мышью см. http://forum.mozilla-russia.org/viewtopic.php?id=42756). В фф 3.5 все здорово и замечательно показывается, а в 3.6 вместо окошка выглядещего как панель получаем обычное окно, на которое к тому-же можно переключится по Alt+tab.
Вопрос в том как можно сделать в 3.6 окно которое будет вести себя так же как panel, какие параметры ему надо задавать?
буду признательна за помощь!

Разработка » Взаимодействие Flash и расширения » 18-02-2010 23:23:42

в результате получилась такая конструкция

Выделить код

Код:

<window id="music_window"  
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    xmlns:html="http://www.w3.org/1999/xhtml"
    width="320" 
    height="300"
    <iframe type="content" id="music_pleer" name="music_pleer" src="chrome://toolbar/locale/player.html" width="320" height="300"/>
    <script type="application/x-javascript" src="chrome://toolbar/content/music_window.js" />
</window>

в player.html есть такая штука

Выделить код

Код:

function callExternalInterface(){
    dump("set pause\n");
}

а в music_window.js пытаюсь сделать селедующее

function cookie_updater(){
    var pleer=document.getElementById('music_pleer').contentWindow.document;
    pleer.callExternalInterface2();

}

но функция callExternalInterface2(); не вызывается. При этом в другом месте получаю доступ к флешу

var pleer=document.getElementById('music_pleer');
dump(pleer+"\n");
pleer.contentWindow.document.a

Разработка » Взаимодействие Flash и расширения » 17-02-2010 09:31:39

нашла вот что http://forums.mozillazine.org/viewtopic … 9&t=781475
c учетом этого пробую писать вот так

Выделить код

Код:

<window id="music_window"  
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    width="320" 
    height="300"
    hidechrome="true"
    windowtype="window_type"
    <iframe type="content" id="mp" src="player.swf" width="320" height="300">
    <script language="JavaScript" type="application/x-javascript">
            function gotourl(arg, arg1, arg2){
                dump("gotourl!!!");
        }
    </script>
    </iframe>
    <script type="application/x-javascript" src="chrome://toolbar/content/music_window.js" />
</window>

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

Разработка » Взаимодействие Flash и расширения » 16-02-2010 20:28:42

рисую обычную html страничку
[code]<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r" />
<script>
    function gotourl(arg, arg1, arg2){
        alert("gotourl!!!");
    }

    </script>
<noscript>
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="270" id="player" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="allowFullScreen" value="false" />
    <param name="movie" value="iplayer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />    <embed src="iplayer.swf
" quality="high" bgcolor="#ffffff" width="320" height="270" name="player" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />

Разработка » Взаимодействие Flash и расширения » 10-02-2010 19:21:10

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

Код:

<embed xmlns="http://www.w3.org/1999/xhtml"

Вот спасибо! не заметила по невнимательности :)
теперь

Выделить код

Код:

function musicpleername_DoFSCommand(command, args){
        dump("1FSCommand\n");
}

вот такая штука работает, но gotourl все равно не ловится

Разработка » Взаимодействие Flash и расширения » 10-02-2010 18:32:14

Infocatcher пишет

По-моему, это должна быть функция browser.contentWindow.gotourl – в том же контексте, что и *.swf.

а у меня получается в другом?

вообще, читала вот этот документ http://flash-ripper.com/articles/flash/ … erface.php
единственное подозрение из-за чего может не работать - то что я встариваю флеш через browser, а надо через embed.
Но когда пытаюсь рисовать такое окно

Выделить код

Код:

<window id="music_window"  
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    onload="music.init()"
    <script type="application/x-javascript" src="chrome://toolbar/content/music_window.js" />
    <embed id="music_pleer_id" src="http://myserver/iplayer_sp.swf" width="320" height="300" type="application/x-shockwave-flash" name="musicpleername" pluginspage="http://www.adobe.com/go/getflashplayer" />
</window>

то флешка не показывается

Разработка » Взаимодействие Flash и расширения » 10-02-2010 12:32:03

Добрый день! :)
Нужна помощь страших товарищей.
Есть окошко

Выделить код

Код:

<window id="music_window"  
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    onload="music.init()"
    <script type="application/x-javascript" src="chrome://toolbar/content/music_window.js" />
    <browser id="music_pleer_id" src="http://myserver.ru/player.swf" width="320" height="300" type="content" />
</window>

В нем показывается флеш.
Флеш посылает сигналы о своем состоянии

Выделить код

Код:

ExternalInterface.call("gotourl", "url", "auth")

Эти сигналы надо ловить в расширении и на них реагировать.
Пытаюсь делать так:
в music_window.js

Выделить код

Код:

function gotourl(command, arg){
        dump("!!!gotour!!!"+arg+"\n");
}

но оно не хочет работать.
Что и где забыла прописать?

Разработка » panel. отображение swf и клики мышью » 01-02-2010 12:58:03

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

Код:

document.documentElement.appendChild( ... )

,

ага, так работает. спасибо!


Только получается такая штука - я в созданное окно добавляю window.opener.pleer, но при закрытии окна он убивается (музыка перестает играть), несмотря на то что создан в главном окне. я наивно полагала, что если элемент создан в главном окне, то и уничтожатся должен вместе с ним, это не так?
можно все-таки как-то созжать глобальный элемент и обращаться к нему из разных окон? :sick:

Infocatcher пишет

Ну, и в консоль ошибок полезно заглядывать, там обычно что-нибудь интересное пишет. =) Пригодится javascript.options.showInConsole = true в about:config или Console² (https://developer.mozilla.org/en/Settin … nvironment).

В консоль смотрю, но в данном случае там было пусто :)

Разработка » panel. отображение swf и клики мышью » 29-01-2010 14:06:55

даже если делать так

Выделить код

Код:

init : function(){
        var pleer = document.createElementNS("http://www.w3.org/1999/xhtml","div");
                pleer.innerHTML="<embed id=\"music_pleer_id\" src=\"_sp.swf\" width=\"320\" height=\"270\" type=\"application/x-shockwave-flash\" /> "
        appendChild(pleer);
},

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

Разработка » panel. отображение swf и клики мышью » 29-01-2010 12:49:56

Infocatcher пишет
Elena пишет

я правильно понимаю что в этом случае окошко плеера будет появляться только а одном из открытых окон ff?

Да, в том, что было открыто первым. Или нужно делать его отдельным окном.

Пытаюсь запихнуть окошко плеера в отдельное окно.
делаю так
в основном файле создаю

Выделить код

Код:

music_pleer = document.createElementNS("http://www.w3.org/1999/xhtml","div");
music_pleer.innerHTML="<embed id=\"music_pleer_id\" src=\"sp.swf\" width=\"320\" height=\"270\" type=\"application/x-shockwave-flash\" /> "

 var win=window.openDialog("chrome://toolbar/content/music_window.xul", '', "centerscreen,resizable");

в music_window.xul:

Выделить код

Код:

<window id="music_window"  
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    width="320" 
    height="250"
    hidechrome="true"
    onload=init()"
</window>

и

[code]init : function(){
        var pleer=window.opener.music_frame;
        dump(pleer+"\n");
        appendChild(pleer);
   
},

Разработка » panel. отображение swf и клики мышью » 25-01-2010 13:52:06

Infocatcher пишет

Так что, пожалуй, проще начать с проверки наличия уже запущенного главного окна. И если оно уже открыто, то ничего не делать.

Спасибо, буду пробовать
я правильно понимаю что в этом случае окошко плеера будет появляться только а одном из открытых окон ff?

Разработка » panel. отображение swf и клики мышью » 22-01-2010 20:40:01

огромное спасибо за ответ! как окно открыть вроде понятно, как туда передать свою флешку и получать к ней доступ вроде тоже (нашла вот здесь https://developer.mozilla.org/en/Working_with_windows_in_chrome_code)

Infocatcher пишет

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

проблема в том, что флешка проигрывает музыку, и когда открываешь новое окно ff, создается новая флешка и музыка начинает играть заново вторым экземпляром. Нужно чтобы использовался один экземпляр во всех открытых окнах. Не очень поняла как это можно сделать, и где надо объявить

Выделить код

Код:

var myFlash = document.createElementNS("http://www.w3.org/1999/xhtml", "embed");

чтобы она создавалась один раз и потом только использовалась?

Разработка » panel. отображение swf и клики мышью » 22-01-2010 12:52:31

Infocatcher пишет

Н-ну, попробовать

Выделить код

Код:

panel.focus();

или тот же метод для какого-нибудь элемента внутри панели.

пробовала, не работает вроде.

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

Разработка » panel. отображение swf и клики мышью » 21-01-2010 13:55:56

Еще чуть-чуть поэксперементировала с панелью - четко получается что при клике мышью ей передается фокус ввода, при движении мыши он теряется.
Если нажать на какой-нибудь элемент управления в первый раз-ничего не происходит, если не двигаю мышью нажать второй раз - работает, мышь не двигаем - нажимаем еще раз - все работает нормально, если мышь сдвинуть, то снова - первый клик передает фокус ввода панели, а последующие действуют на орган управления.
Посему, меня очень волнует вопрос - можно-ли как-нибудь передать фокус ввода панели принудительно?

Буду очень признательна за подсказку

Board footer

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