2009-02-10 3 views
3

Est-ce que quelqu'un sait s'il existe un moyen simple d'intercepter l'URL du lien planant dans un contrôle AIR HTML? Tout comme dans un navigateur, j'aimerais que l'URL s'affiche dans une barre d'état, mais je ne trouve aucun événement déclenché lors du survol d'un lien. Avez-vous besoin d'inspecter et peut-être manipuler le DOM moi-même pour cela?Afficher l'URL du survol de lien dans le contrôle HTML AIR

Répondre

4

En supposant que vous utilisez mx: HTML ou HTMLLoader, vous devrez probablement écrire un petit script de votre choix pour connecter les objets DOM au conteneur AIR. Voici une façon de le faire - il y a probablement une solution plus élégante, mais à des fins d'illustration, cela devrait suffire.

<?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> 

Espérons que ça aide!

+0

Excellent, juste ce que je cherchais. Merci Christian! –

+0

Vous êtes les bienvenus monsieur! –

+0

Bonne réponse. Merci –

Questions connexes