在AIR HTML控件中的链接悬停上显示URL

时间:2009-02-10 16:53:35

标签: flex dom air

有没有人知道是否有一种简单的方法可以在AIR HTML控件中捕获悬停的链接URL?就像在浏览器中一样,我希望url显示在状态栏中,但是我找不到任何在链接翻转时引发的事件。我是否需要自己检查并操纵DOM?

1 个答案:

答案 0 :(得分:4)

假设您使用的是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>

希望它有所帮助!