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 :

Bizarreries très gênantes dans IE


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Bizarreries très gênantes dans IE
    Bonjour,

    Alors voila mon souci, je suis en train de développer un script censé m'afficher une boite de dialogue dont le contenu est chargé par AJAX.
    La phase de création de ma boite de dialogue se passe bien, ma requête AJAX s'effectue sans problème (mis à part que je dois vider le cache de IE pour voir mes modifications si je change quelque chose dans le fichier inclus... Pas pratique !).

    En fait mon problème arrive quand je crée le lien qui doit fermer la boite de dialogue, juste après ma requête AJAX : IE ne me l'affiche pas, à moins que je scroll ma boite jusqu'en bas et que je remonte là où le lien devrait se trouver. Dans ce cas là, mon lien apparait, mais je comprends absolument pas pourquoi.
    Si ma page incluse par AJAX contient un lien quel qu'il soit, mon lien pour fermer s'affiche normalement...



    De plus, ce lien fait appel à une fonction JS pour supprimer ma boite de dialogue, mais au clic, rien ne se passe.
    Si je place exactement le même lien dans ma page incluse, ma boite se ferme, mais avec le lien inclus dynamiquement, rien du tout.



    Absolument tout marche parfaitement sous Firefox et IE ne renvoie aucune erreur de script, pas plus que les barres d''outils de développement qui lui sont associées.


    Je comprends plus rien là ! Si vous pouviez m'éclairer.


    Désolé pour le roman

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    pour eviter d'avoir à vider le cache IE mets un timestamp dans ta requete ajax .....

    pour le reste sans voir les parties de code incriminés en particulier la creation du lien ...
    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
    Invité
    Invité(e)
    Par défaut
    Pour créer le lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        ...
        closeButton = document.createElement('a');
        closeButton.setAttribute('href', '#');
        closeButton.setAttribute('onClick', 'closeDialog("' +id+ '");');
        closeButton.setAttribute('id', 'close_' +id);
        closeButton.style.position = "absolute";
        closeButton.style.top = "5px";
        closeButton.style.right = "5px";
        closeButton.appendChild(document.createTextNode("Fermer"));
        newDialog.appendChild(closeButton);
        opacity(id, 0, 100, 500);
        ...

    Pour supprimer la boite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        function closeDialog(id){
        Body = document.getElementsByTagName('body')[0];
        Body.removeChild(document.getElementById(id));
        opacity('Dark', 70, 0, 1000);
        setTimeout('document.getElementById("Dark").style.display = "none;"', 1000);
    }

    La sortie de la fonction de création du lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <A id=close_alert style="RIGHT: 5px; POSITION: absolute; TOP: 5px" href="#" onClick='closeDialog("alert");'>Fermer</A>

    Tout marche nickel sous FF !

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    La syntaxe n'est pas bonne inspire toi de ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    closeButton.'href'= '#';
        closeButton.id= 'close_' +id;
    closeButton.onclick=function(){closeDialog(this.id)};
    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
    Invité
    Invité(e)
    Par défaut
    Heu, merci pour ton aide mais ma syntaxe est correcte, simplement, je passe par le DOM. D'ailleurs la ligne que j'ai indiqué comme étant la sortie du script, je l'ai copié directement de l'inspecteur du DOM de DebugBar, dans IE. De plus, j'utilise cette même syntaxe pour créer ma boite de dialogue et dans ce cas ça fonctionne parfaitement.


    Après test, les guillemets autour de href font bugguer mon script, en les enlevant, ça remarche jusqu'à ce que je clique sur mon lien, la il me sort la même erreur incohérente qu'avec les guillemets... Je rêve d'un vrai debugger javascript sous IE, un truc à la FireBug.
    Dernière modification par Invité ; 21/04/2007 à 16h39.

  6. #6
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    heu sboob si je te dis de changer de syntaxe ce n'est pas sans raison !

    surtout pour cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    closeButton.onclick=function(){closeDialog(this.id)};
    elle est crossBrowser ce qui n'est pas le cas de ta syntaxe ...
    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 !

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

Discussions similaires

  1. Texte très long dans une cellule
    Par rpapa dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 01/02/2019, 16h45
  2. [JDBC] Erreur très bizarre dans ExecuteQuery
    Par boudou dans le forum JDBC
    Réponses: 6
    Dernier message: 17/03/2006, 18h33
  3. Deplacement très loin dans un fichier..
    Par nicolaskarp dans le forum C
    Réponses: 8
    Dernier message: 12/12/2005, 16h03

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