Показывать URL-адрес при наведении ссылки в элементе управления AIR HTML - PullRequest
3 голосов
/ 10 февраля 2009

Кто-нибудь знает, есть ли простой способ перехватить ссылку на ссылку в элементе управления AIR HTML? Как и в браузере, я бы хотел, чтобы URL отображался в строке состояния, но я не могу найти событие, которое возникает при переходе по ссылке. Нужно ли вам самому проверять и, возможно, манипулировать DOM для этого?

1 Ответ

4 голосов
/ 10 февраля 2009

Предполагая, что вы используете mx: HTML или HTMLLoader, вам, вероятно, придется написать собственный скрипт, чтобы связать объекты DOM с контейнером AIR. Вот один из способов сделать это - возможно, есть более элегантное решение, но для иллюстрации этого должно быть достаточно.

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="1024" height="768" xmlns:html="flash.html.*" horizontalScrollPolicy="off">

    <mx:Script>
        <![CDATA[

            private function container_complete(event:Event):void
            {
                addHTMLListeners();
            }

            private function addHTMLListeners():void
            {
                var links:Object = container.htmlLoader.window.document.getElementsByTagName("a");

                for (var i:int = 0; i < links.length; i++)
                {
                    if (links[i].href != "")
                    {
                        var href:String = links[i].href;

                        links[i].onmouseover = function():void { setStatus(this); };
                        links[i].onmouseout = function():void { clearStatus() };
                    }
                }
            }

            private function setStatus(o:Object):void
            {
                status = o.href;
            }

            private function clearStatus():void
            {
                status = "";
            }

        ]]>
    </mx:Script>

    <mx:HTML id="container" location="http://stackoverflow.com/users/32129" width="100%" height="100%" complete="container_complete(event)" />

</mx:WindowedApplication>

Надеюсь, это поможет!

...