Avec l'arrivée des standards dans la conception HTML, les habitudes de navigation des internautes changent peu à peu. Un cas trés spécial est celui de l'attribut target que l'on pouvait auparavant mettre dans un lien pour ouvrir ce même lien dans une nouvelle fenêtre.

Avec la supression de cet attribut au sein des standards XHTML, de nombreux webmasters (moi le premier :P) ont protesté contre le fait qu'ils ne pouvaient pas laisser une fenêtre de leur site ouverte et ainsi ne pouvaient plus controler la manière dont naviguent les internautes sur leur site. Personnellement, depuis que j'adopte autant que possible les standards, je trouve avec le recul que c'est plutôt à l'internaute de choisir ou il veut aller et surtout comment il veut y aller. Tous les navigateurs permettent maintenant d'ouvrir une nouvelle fenêtre en restant appuyé sur la touche SHIFT en même temps que l'on clique sur le lien. Cette habitude bien ancrée, il devient trés désagréable de se trouver confronté à une lien _blank alors qu'on n'en a pas envie ... :\

Afin de reproduire ce comportement dans mes animations Flash, je me sert d'un hack du prototype de MovieClip, normalement proscrit en AS2, mais qui me simplifie grandement la vie.

// On sauvegarde la méthode getURL d'origine
MovieClip.prototype.__getURL = MovieClip.prototype.getURL;
// On écrase getURL
MovieClip.prototype.getURL = function() {
        // On travaille sur une copie d'arguments
        var param = arguments.concat();
        // Si la touche SHIFT est appuyée
        // et qu'il ne s'agit pas d'un lien javascript ou asfunction
        // on met la cible à '_blank'
        if (Key.isDown(Key.SHIFT) && param[0].toLowerCase().indexOf("javascript:") < 0 && param[0].toLowerCase().indexOf("asfunction:") < 0) {
                param[1] = "_blank";
        }
        // On appelle l'ancienne méthode getURL
        MovieClip.prototype.__getURL.apply(this,param);
}

Ainsi, je ne spécifie plus la destination de mes liens, et quel que soit le getURL que je fais, il suffit d'appuyer sur SHIFT pour l'ouvrir dans une nouvelle fenêtre. Ce comportement est repris dans le menu des sites MediaBox. :)

A ce propos, vous aurez d'ailleurs peut-être remarqué que lors de l'affichage d'un texte HTML dans une zone de texte Flash, en cliquant droit sur un lien, un menu vous proposant d'ouvrir le lien dans une nouvelle fenêtre vous est proposé ! ;)