IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Firefox WYSIWYG designMode="on"


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Par défaut Firefox WYSIWYG designMode="on"
    bonjour,

    j'essaye de crée un addon jquery permettant de crée une iframe éditable ( un éditeur WYSIWYG ) cependant je pense que le problème ne vien pas de jquery.
    (déja traité ici )
    Voici mon problème :
    Le code marche sur tous les navigateurs sauf firefox
    surement du à : contentWindow.document.designMode = "on";
    voici le code du plugin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    (function($) {
     
    	$.fn.tagName = function() {//fonction de rajout a jquery.
    	      return this.get(0).tagName.toLowerCase();
    	};
     
    	$.fn.lemonEditor = function() {
     
    		var gEditor = this; //élément Editor
    		// $.print_r(gEditor);
    		var tagName = $(gEditor).tagName();
    		if(tagName!="div"){
    			/* Affichage d'une erreur */
    			$.YRnote({type:'err',msg:"l'obj <b>"+$(this).attr("id")+"</b> n'est pas une div."});
    		}else{
    			/* Paramètre par défaut */
    			var docId = "edit";		
    			var doc = $("<iframe/>",{
    				id:docId 
    			});
     
    			gEditor.addClass("E_lemontEditor"); //Ajoute du CSS
     
    			gEditor.html(doc);					//Création de l'iframe
     
    			$("#edit").ready(function() { 
     
    				Iframe=$("#edit").get(0);			//Ciblage de l'iframe
    				Iframe.contentWindow.document.designMode = "on"; //activation du mode éditable
    				try {
    					Iframe.contentWindow.document.execCommand("undo", false, null); //test du mode éditable
    				  }  catch (e) {
    				    alert("Editeur non suporter par le navigateur");
    				}
     
    			});
    		}
     
    		return this; //fuilditer
    	};
     
    })(jQuery);
    vous trouverez en pièce jointe l'intégralité du code test.

    merci d'avence pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Voici mon problème :
    Le code marche sur tous les navigateurs sauf firefox
    avec une explication aussi claire du problème, ça va être facile de t'aider
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Par défaut
    c'est justement parce-que le problème me semble aberrant !
    ha oui quand je dit marche c'est-à-dire que le contenu de l'iframe devient étitable et qu'il est possible d'écrire du texte à l'intérieur.
    Et donc ça marche sur Opera IE9 Safarie Chrome.
    et ça ne marche pas sur firefox

  4. #4
    Rédacteur

    Homme Profil pro
    Responsable de projet
    Inscrit en
    Mai 2009
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 634
    Par défaut
    Salut,

    après avoir fait une recherche sur Google, tu trouveras ton bonheur en 2eme résultat. Voici le lien:

    http://corpocrat.com/2008/07/22/a-si...in-javascript/

    l'article (en anglais) explique comment le faire avec Firefox

    Et voici également un autre lien expliquant le designMode sous Firefox (sur mozilla.org)

    http://www.mozilla.org/editor/ie2midas.html

    ++

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Par défaut
    merci pour ces doc ... je les utilisait mais il y a un petite erreur viseuse dedans.
    bon voila j'ai trouvé enfin ^^ on ma aider on peut pas le deviner xD

    donc voila la solution :
    au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("rte").contentWindow.document.designMode = "On";
    il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("rte").contentDocument.designMode = "On";
    voila voila résolu

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo