Aide - Recherche - Membres - Calendrier
Version complète : AIR Problème de liens "_blank" avec contrôle HTML
Centre de Formation Flash - Forums Adobe Flash > Rich media et intégration > Flex
nicolb
Bonsoir à tous,

Je suis en train de développer un petit lecteur de news avec AIR.
J'utilise le contrôle HTML pour affiche le contenu des news qui sont au format HTML.

Cependant, j'ai remarqué que contrairement aux contrôles textArea, le contrôle HTML ainsi que la classe HTMLControl ne gère pas les liens dont la target est "_blank". Lors du clique sur un tel lien, rien ne se passe... icon_sad.gif

Je souhaiterais que lorsque l'utilisateur clique sur un lien de ce type, une fenêtre du navigateur s'ouvre.
Y a-t-il un moyen de configurer le contrôle HTML pour qu'il prenne en charge les liens "_blank", ou peut-on récupérer la valeur de l'attribut "href" lors de l'évènement "click" sur ce contrôle ??? icon_question.gif

Merci d'avance;-)
nicolb
Un petit workaround pour ceux que ça intéresse !
Le contrôle HTML offre la possibilité de manipuler le DOM grâce à la classe JavaScriptObject :

CODE
<mx:HTML id="htmlNews" width="100%" height="100%" visible="false" styleName="main" complete="makeLinks(event);" />

<mx:Script>
    <![CDATA[
    import flash.net.*;
    import flash.html.*;
    import flash.events.Event;

    private function makeLinks(e:Event):void
    {
        var dom:JavaScriptObject = e.currentTarget.javaScriptDocument;
        var links:Object = dom.getElementsByTagName("a");

        for(var i:Number = 0; i < links.length; i++){
            if(links[i].target.toLowerCase() == "_blank"){
                links[i].onclick = clickHandler;
            }
        }
    }

    private function clickHandler(o:JavaScriptObject):void
    {
        navigateToURL(new URLRequest(o.currentTarget.href),"blank");
    }

]]>
</mx:Script>


Voilà ! icon_wink.gif
jeanphilippe
salut
si c'est en AIR quel intérêt d'ouvrir les liens dans une page du navigateur ??
pourquoi pas dans une new Window dans l'application AIR ?
nicolb
Oui c'est vrai... icon_confused.gif
Mais dans ce cas précis, je cherchais à faire un simple lecteur de news provenant de mon blog dans une application AIR ( mon but étant juste d'appréhender l'environnement AIR).
Or, il se trouve que j'y ai des liens vers des petites démos swf qui s'ouvrent dans des nouvelles fenêtres. Cherchant à faire quelque chose de simple, je pensais que le contrôle HTML gérait ce type de liens... Et voyant que ça n'était pas le cas, j'ai cherché à trouver comment faire !!! Et machinalement peut-être (ou plutôt sûrement icon_redface.gif ) j'ai continué sur la voie du navigateur....
Mais bon, à partir de là c'est très simple d'afficher le contenu dans une nouvelle window (j'y court d'ailleurs !).
@+
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.