
Note: les exemples de cette page ne fonctionnent toujours qu'avec Microsoft Internet Explorer 5.5 minimum (sans parler du fait que je ne teste que sous IE6).
Aujourd'hui, je vais m'attaquer à l'ajout de liens, de façon à pouvoir définir l'url et le titre du lien. Avec la commande «execCommand('createLink', true)» une boite de dialogue apparait automatiquement pour paramétrer l'url du lien. Selon la documentation, il est également possible de créer un lien en utilisant la syntaxe «execCommand('createLink', false, 'http://www.msn.fr/')».
J'essaie d'abord avec une url en dur :
Ok, ça marche, mais ç'est la moindre des choses vu que c'était dans la doc. Reste maintenant à ouvrir une fenêtre spéciale pour saisir la définition du lien. Ca devient un peu plus compliqué puisqu'il va falloir :
Pour ouvrir la fenêtre externe, après avoir perdu un peu de temps à tenter d'utiliser «window.open()» je fini par employer «window.showModalDialog()» parce que ça me permet d'avoir une fenêtre modale et surtout de récupérer facilement les données saisies.
Pour la page servant à saisir l'url et la légende, je commence par quelque chose d'assez simple, parce que je sens que le plus compliqué va être d'arriver à récupérer les deux valeurs (l'url et la légende) puis de réussir à créer un lien avec un attribut «title» pour la légende.
Bon, ça a marché, même si la boite de dialogue a pour l'instant une drôle de gueule. Il faut maintenant trouver un truc pour récupérer la légende du lien et l'exploiter . Voyons déjà comment faire pour arriver à définir la balise «title».
Je ne vais pas montrer de suite un exemple avec la méthode "pasteHTML", parce qu'il y a encore quelques petits réglages à faire pour aboutir à un résultat satisfaisant.
Après tous ces efforts pour trouver comment gérer l'attribut "title", je préfère continuer par quelque chose d'un peu plus amusant et essayer de donner un "look" windows à ma fenêtre popup. Après une explosion des délais dûe à des bidouillages insensés en matière de css, je réussi à produire une boite de dialogue tiptop :
Ca c'était le source de la boite de dialogue, et maintenant le code pour l'afficher, récupérer les informations sur le lien et insérer le lien :
Une fois qu'on remet la barre d'outils de la semaine dernière, ça donne un
Le problème, c'est qu'en utilisant simplement createLink, il était possible de modifier le lien et plus maintenant. En plus, ça ne marche plus trop pour insérer un lien à partir d'une image. Après quelques essais rapides, j'entrevoie quelques pistes, mais je m'en occuperai plus tard.
Parce qu'à force de faire des essais divers et variés, je me suis aperçu qu'il y a un problème avec la barre d'outils. Quand on sélectionne du texte en dehors de la zone de saisie puis que l'on clique sur un des boutons de la barre d'outils, ça agit aussi! Je vais faire comme si j'avais rien vu et la prochaine fois, je transforme d'abord le html en xhtml avant de faire quoique ce soit d'autre (et surtout je n'essaie pas (pour l'instant :) de refaire la fenêtre d'insertion d'une image).