WYSIWYG : retour à la ligne sous Internet Explorer et FireFox

En développant par exemple un WYSIWG, une différence entre IE et Mozilla Firefox nous fait rapidement râler: le saut à la ligne. Les deux navigateurs ont une approche différente pour insérer un saut à la ligne en HTML :
- le moteur Gecko de Mozilla ajoute une balise <br>
- IE entoure le paragraphe avec la balise <p>. Un <br> est seulement ajouté si la touche Shift est appuyée en męme temps.

Pour uniformiser le retour à la ligne avec des <br>, la solution la plus simple est d'intercepter l'appui de la touche enter et d'en définir soi-męme l'action sous Internet Explorer.

//exemple pour attacher la fonction à l'évenement onkeydown
document.getElementById('textArea').onkeydown=this.editorKeyDown;

function
editorKeyDown() {
        if (isIE&&event.keyCode == 13&&!event.shiftKey) {
            range = document.selection.createRange();
            range.pasteHTML("<br/>");
            event.returnValue = false;
            event.cancelBubble = true;
            range.select();
            range.move('character',1);
            return false;
        }

A quoi sert cancelBubble ? arręter la propagation du message. Dans notre cas, nous remplaçons le saut à la ligne standard par notre propre traitement.


Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour23/03/2010
VisualisationVu 1504 fois
PublicInternaute zz
CategorieWeb - Javascript - Evenement
Auteur de l'article
Fobec Fobec
connecté le 28/07/2016
41 ans - France Nord-Est
104 articles dans la section
Contacter l'auteur