>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Взаимодействие Flash и расширения http://forum.mozilla-russia.org/viewtopic.php?id=43193 |
Elena > 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> В нем показывается флеш. Эти сигналы надо ловить в расширении и на них реагировать. но оно не хочет работать. |
Infocatcher > 10-02-2010 18:12:27 |
По-моему, это должна быть функция browser.contentWindow.gotourl – в том же контексте, что и *.swf. В общем случае, наверное, что-то вроде того, что сделано в Stylish: Выделить код Код:var stylishCommon = { ... dispatchEvent: function(doc, type) { if (!doc) { return; } var stylishEvent = doc.createEvent("Events"); stylishEvent.initEvent(type, false, false, doc.defaultView, null); doc.dispatchEvent(stylishEvent); }, ... }; stylishCommon.dispatchEvent(doc, "styleLoadCode"); То есть на уровне странице генерируются события, а расширение их ловит. Или наоборот. |
Elena > 10-02-2010 18:32:14 |
Infocatcher пишет
а у меня получается в другом? вообще, читала вот этот документ http://flash-ripper.com/articles/flash/ … erface.php Выделить код Код:<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> то флешка не показывается |
Infocatcher > 10-02-2010 18:38:16 |
Из <browser type="content"> нельзя увидеть привилегированный код, подключенный «снаружи».
Или <object>... или другое пространство имен. Но только если это «доверенная» флешка. А иначе нужно ее как content добавлять – чтобы без лишних привилегий. |
Elena > 10-02-2010 19:21:10 |
Infocatcher пишет Вот спасибо! не заметила по невнимательности вот такая штука работает, но gotourl все равно не ловится |
Elena > 16-02-2010 20:28:42 |
рисую обычную html страничку Выделить код Код:<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" /> </object> </noscript> </body> </html> все отлично работает,gotourl вызывается. Выделить код Код:<window id="music_window" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" width="320" height="300" hidechrome="true" windowtype="music_window_type" <script type="application/x-javascript" src="chrome://toolbar/content/window.js" /> <script language="JavaScript" type="text/javascript"> function gotourl(arg, arg1, arg2){ alert("gotourl!!!"); } </script> <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 id="player" xmlns="http://www.w3.org/1999/xhtml" src="player.swf" width="320" height="300" type="application/x-shockwave-flash" name="musicpleername" pluginspage="http://www.adobe.com/go/getflashplayer" allowScriptAccess="sameDomain" allowFullScreen="false"/> </object> </window> работать не хочет. в чем может быть дело? какие-нибудь настройки или что-то еще? |
Elena > 17-02-2010 09:31:39 |
нашла вот что http://forums.mozillazine.org/viewtopic … 9&t=781475 Выделить код Код:<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> но оно тоже не очень-то хочет работать. |
Elena > 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 есть такая штука а в music_window.js пытаюсь сделать селедующее
но функция callExternalInterface2(); не вызывается. При этом в другом месте получаю доступ к флешу
как из javascript получить доступ к функции которая описано внутри iframe? |
SunnyDay > 16-03-2010 04:04:22 |
>как из javascript получить доступ к функции которая описано внутри iframe frame_window.wrappedJSObject.function_in_frame() |
Elena > 16-03-2010 09:35:02 |
SunnyDay пишет
Спасибо большое! попробую так. Еще возник такой вопрос - видимо параметры безопасности блокируют взаимодействие флешки и расширения. |
SunnyDay > 17-03-2010 03:01:28 |
Elena |
Elena > 17-03-2010 15:07:03 |
SunnyDay пишет
спасибо за ссылку! а не подскажите, в случае с флешкой, которая внутри html документа, который внутри frame |
easy_me > 02-02-2011 13:15:25 |
решили в итоге ? я столкнулся с такой же проблемой ! FSCommand и ExternalInterface через добавление сюда http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html работают у меня флешка вставляется в расширение через embed ( не в iFrame ) |