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 :

fonction redimensionnement marche pas sous firefox


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut fonction redimensionnement marche pas sous firefox
    Bonjour,

    J'ai fais une fonction pour redimensionner un div. Elle marche bien sous IE, mais pas sous firefox...
    Pourquoi?
    Voila les fonctions que j'utilise:
    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
     
    var xinit; // position de la souris au clic sur le div
    var yinit;
    var x; // position de l'élément au départ
    var y;
    var initier = false; // si on est en train de cliquer
    var idEnCours; // id du div qui est en cours de modif
     
    function init(e, id){
    	idEnCours = id;
    	initier = true;
    	xtmp = document.getElementById(id).offsetLeft;
    	ytmp = document.getElementById(id).offsetTop;
    	x = document.getElementById(id).offsetLeft;
    	y = document.getElementById(id).offsetTop;
    	xinit = e.clientX;
    	yinit = e.clientY;
    }
     
    function bouge(e){
    	// si on a cliqué et qu'on bouge
    	if(initier){
    		xtmp = document.getElementById(idEnCours).offsetLeft;
    		ytmp = document.getElementById(idEnCours).offsetTop;
    		document.getElementById(idEnCours).style.width = document.getElementById(idEnCours).offsetWidth + (e.clientX - x - document.getElementById(idEnCours).offsetWidth - 25);
    		document.getElementById(idEnCours).style.height = document.getElementById(idEnCours).offsetHeight + (e.clientY - y - document.getElementById(idEnCours).offsetHeight);
    	}
    }
     
    function fin(e){
    	initier = false;
    }
    En fait, dans le div que je veux redimensionner, j'ai un div dans le coin en bas à droite qui lorsque je clique dessus déclenche la fonction init = début redimensionnement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <body onmousemove="bouge(event);" onmouseup="fin(event);">
    <DIV class=box id=boxHandle1 >
      <DIV id=carre_resize onmousedown="init(event,'boxHandle1');"></DIV>
    </DIV>
    Le message renvoyé par le debbuggeur javascript de firefox est:
    Erreur d'analyse de la valeur pour la propriété "width". Déclaration abandonnée.
    Erreur d'analyse de la valeur pour la propriété "height". Déclaration abandonnée.
    Merci d'avance de votre aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Est ce que c'est bien la bonne manière de modifer la largeur et la hauteur pour firefox?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    D'autre part, je voudrais savoir quel est l'équivalent de contentEditable=true pour firefox, car cet attribut est interprété par IE mais pas par firefox.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    fasi une recherche sur la gestion d'evenement crossbrowser ...
    ça c'est exclu IE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xinit = e.clientX;
    	yinit = e.clientY;
    pour le coup du div editable, il faudra faire une grosse bidouille sur les onkeyup pour gérer le innerHTML ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Citation Envoyé par calitom Voir le message
    Est ce que c'est bien la bonne manière de modifer la largeur et la hauteur pour firefox?
    Tu as oublié de préciser les unités :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.getElementById(idEnCours).style.height = taille + "px"; // Bon
    document.getElementById(idEnCours).style.height = taille; // Mauvais

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    c'était bien du au fait que j'avais oublié la taille!!
    Merci !

    Et donc pour gérer le contentEditable il faut que je fasse quoi?

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Sur le onclick du div en question, tu affiches un textarea reprenant le innerHTML du div et sur le onblur du textarea, tu réaffiches le div en prenant la valeur du textarea.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function switchObj(div, textarea){
    	if(div.style.display != "none"){
    		div.style.display = "none";
    		textarea.style.display = "block";
    		textarea.value = div.innerHTML;
    	}
    	else{
    		div.style.display = "block";
    		textarea.style.display = "none";
    		div.innerHTML = textarea.value;
    	}
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id="truc1" onclick="switchObj(this, document.getElementById('truc2'))">Texte</div>
    <textarea id="truc2" style="display:none" onblur="switchObj(document.getElementById('truc1'), this)"></textarea>

    Après il ne te reste plus qu'à gérer les \n et les <br />.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Ca marche très bien, mais je souahiterai vraiment pouvoir editer un div directement, car j'ai par exemple besoin d'ajouter des images, ou de mettre en forme le texte...

    Et dans ce cas, si je sélectionne du texte et que j'essaye par exemple de cliquer sur le bouton pour modifier la mise en forme, la perte du focus déclenche la retransformation du textarea en div, et je ne peux donc pas mettre en forme le texte...

  9. #9
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Dans ce cas-là il te faut tout simplement un éditeur WYSIWYG.

    Regarde du côté de FCKEditor.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Pour gérer les retours à la ligne, comment je peux faire?
    En sachant que je veux différencier les sauts de ligne des sauts de paragraphe:
    enter ->fin paragraphe donc saute une ligne
    maj+enter -> retour à la ligne dans le paragraphe

Discussions similaires

  1. marginTop qui marche pas sous Firefox
    Par amestoche dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/02/2008, 15h19
  2. [AJAX] sondage marche pas sous firefox (lotus notes)
    Par watchabongo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/01/2008, 10h00
  3. drag and drop march pas sous firefox+joomla!
    Par tecap dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/10/2007, 10h16
  4. le ValidationSummary ASP ne marche pas sous Firefox
    Par hokidoki dans le forum ASP.NET
    Réponses: 15
    Dernier message: 16/08/2007, 10h30
  5. Fonction qui ne marche pas sous FireFox
    Par Foudébois dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/11/2006, 14h35

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