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 :

Problème sous Firefox, avec les images.


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Problème sous Firefox, avec les images.
    Bonjour,

    Je suis actuellement sur le développement sur un script de prévisualisation directe d'un post (En gros j'affiche dans un div les données parsées d'un textarea).
    Tout marche niquel (enfin presque sinon je serais pas en train de poster ici ), sauf l'affichage des images.

    En effet, sous Opera 9.0, aucun souci, tout fonctionne correctement, sous Firefox, tout va mal, mon div "clignote" (lorsque j'affiche une image, donc.)... Et sous IE, ça marche à moitié : Pour les smileys aucun souci, mais il cherche l'image (si elle n'est pas dans un dossier du site même) très longtemps avant de l'afficher.

    Aussi voici le script JS :

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    function visibilite(thingId)
    {
    var targetElement;
    targetElement = document.getElementById(thingId) ;
    if (targetElement.style.display == "none")
    {
    targetElement.style.display = "" ;
    } else {
    targetElement.style.display = "none" ;
    }
    }
     
    var timer=0;
    var ptag=String.fromCharCode(5,6,7);
    function  previsualisation() {
    t=document.formulaire.message.value 
    t=code_to_html(t)
    if (document.getElementById) document.getElementById("prev_reponse").innerHTML=t
    if (document.formulaire.chkb_prev_reponse.checked) timer=setTimeout(previsualisation,1)
    }
     
    function code_to_html(t) {
    t=nl2khol(t)
    // balise Gras <!-- on lui dis que telles balises correspondent à tels codes en HTML -->
    t=deblaie(/(<\/gras\>)/g,t)
    t=remplace_tag(/<gras>(.+)<\/gras>/g,'<span style="font-weight: bold;">$1</span>',t) 
    t=remblaie(t)
     
    // balise Italique
    t=deblaie(/(<\/italique>)/g,t)
    t=remplace_tag(/<italique>(.+)<\/italique>/g,'<span style="font-style: italic;">$1</span>',t) 
    t=remblaie(t)
     
    // balise Souligné
    t=deblaie(/(<\/souligné>)/g,t)
    t=remplace_tag(/<souligné>(.+)<\/souligné>/g,'<span style="text-decoration:underline;">$1</span>',t) 
    t=remblaie(t)
     
    // balise Barré
    t=deblaie(/(<\/barré>)/g,t)
    t=remplace_tag(/<barré>(.+)<\/barré>/g,'<span style="text-decoration:line-through;">$1</span>',t) 
    t=remblaie(t)
     
    // balise Image
    t=deblaie(/(\<\/image\>)/g,t)
    t=remplace_tag(/\<image\>(.+)\<\/image\>/g,'<img src="$1" />',t)
    t=remblaie(t)
     
    // balise Lien 1
    t=deblaie(/(<\/url\>)/g,t)
    t=remplace_tag(/<\lien>http:\/\/(.+)<\/lien>/,'<a href="$1">http://$1</a>',t)
    t=remblaie(t)
     
    // balise Lien 2
    t=deblaie(/(<\/url\>)/g,t)
    t=remplace_tag(/<\lien:([\s\S]*?)>(.+)<\/lien>/,'<a href="$1">$2</a>',t)
    t=remblaie(t)
     
    // balise Citation 1
    t=deblaie(/(<\/quote>)/g,t)
    t=remplace_tag(/<quote>(.+)<\/quote>/g,'<div style="background:white; border:1px solid #85b4e1; padding:2px;  margin:10px;"><span style="display:block; font-size:10px; font-weight:bold; margin-bottom:5px; padding-bottom:2px; border-bottom:1px solid #85b4e1;">Citation :</span>$1</div>',t) 
    t=remblaie(t)
     
    // balise Citation 2
    t=deblaie(/(<\/quote>)/g,t)
    t=remplace_tag(/<quote:([\s\S]*?)>(.+)<\/quote>/g,'<div style="background:white; border:1px solid #85b4e1; padding:2px;  margin:10px;"><span style="display:block; font-size:10px; font-weight:bold; margin-bottom:5px; padding-bottom:2px; border-bottom:1px solid #85b4e1;">Citation : $1</span>$2</div>',t) 
    t=remblaie(t)
     
    // smileys
    t=remplace_tag(/:D:/,'<img src="styles/images/smileys/biggrin.gif" alt=":D" />',t) 
    t=remblaie(t)
    t=unkhol(t)
    t=nl2br(t)
    return t
    }
    function deblaie(reg,t) {
    textarea=new String(t);
    return textarea.replace(reg,'$1\n');
    }
    function remblaie(t) {
    textarea=new String(t);
    return textarea.replace(/\n/g,'');
    }
    function remplace_tag(reg,rep,t) {
    textarea=new String(t);
    return textarea.replace(reg,rep);
    }
    function nl2br(t) {
    textarea=new String(t);
    return textarea.replace(/\n/g,'<br/>');
    }
    function nl2khol(t) {
    textarea=new String(t);
    return textarea.replace(/\n/g,ptag);
    }
    function unkhol(t) {
    textarea=new String(t);
    return textarea.replace(new RegExp(ptag,'g'),'\n');
    }
    Ce sont donc les lignes en-dessous des commentaires // balise image et // smileys qui buggent sous Firefox (et sous IE, seulement les lignes en-dessous de // balise image)

    Merci d'avance pour votre aide !

  2. #2
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.formulaire.chkb_prev_reponse.checked) timer=setTimeout(function(){previsualisation(),1}
    par contre 1 millième de seconde sur le setTimeout ... est ce vraiment utile ?
    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 !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse

    Malheureusement ta solution ne marche pas...

    Sinon 1 millième de seconde, non ce n'est pas forcément très utile c'est vrai... Mais c'est pour que ce soit réellement en direct

Discussions similaires

  1. [FPDF] problème avec les images dans un tableau dynamique
    Par GADSN dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 08/04/2009, 11h11
  2. [GD] Problème de mémoire avec les grandes images en PHP
    Par bodysplash007 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 12/04/2007, 17h02
  3. TreeView - Problème avec les images
    Par LoicH dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/06/2005, 18h50
  4. Réponses: 6
    Dernier message: 19/05/2005, 11h06

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