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 :

[AJAX] Affichage d'une infobulle : Comportement étrange


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Points : 35
    Points
    35
    Par défaut [AJAX] Affichage d'une infobulle : Comportement étrange
    Bonjour.

    Dans une page située sur un serveur X, j'inclus la ligne suivante dans la balise <body> (vous allez comprendre pourquoi)

    <script type="text/javascript" src="http://localhost:52800/scripts/962e975d-49b1-40c8-bfed-ed89ea340edb.eng.js"></script>

    Voici le contenu du fichier en question:
    document.write('<link rel="stylesheet" href="http://localhost:52800/css/ehelp_ca.css" type="text/css"/>');
    document.write('<script type="text/javascript" src="http://localhost:52800/scripts/ehelpheader.js"></script>');
    document.write('<a class="eHelpTip" href="#" onmouseover="ehelp(\'962e975d-49b1-40c8-bfed-ed89ea340edb\', \'eng\');"><img src="images/qmark.gif" alt=""/><span id="962e975d-49b1-40c8-bfed-ed89ea340edb"></span></a>');
    Donc basiquement, j'insere du code HTML à l'endroit que je veux dans la page (voila pourquoi c'est dans body), le but étant d'afficher une image, et poper une infobulle quand on mouseover dessus.

    En effet, voici une partie du code du fichier javascript ehelpheader.js, et notament la fonction principale appellée lors du mouseover:

    var eHelpPath = 'http://localhost:52800/';

    var httpRequest;
    var requestUrl = eHelpPath + 'retrieve.aspx';
    var helpSpanId;

    var isHelpReceived = false;
    var receivedHelp;

    // FONCTION PRINCIPALE
    function ehelp(helpId, language) {

    if (isHelpReceived)
    document.getElementById(helpId).innerHTML = receivedHelp;
    else
    {
    var entire_url = requestUrl + "?id=" + helpId + "&lg=" + language;

    helpSpanId = helpId;
    httpRequest = CreateXmlHttpObject(stateChangeHandler);
    httpRequest.open('GET', entire_url, true);
    httpRequest.send(null);
    }
    }

    // FONCTION APPELLE LORS DU CHANGEMENT DE STATE
    function stateChangeHandler()
    {
    if (httpRequest.readyState == 4){
    receivedHelp = httpRequest.responseText;
    isHelpReceived = true;
    document.getElementById(helpSpanId).innerHTML = receivedHelp;
    }
    else {
    document.getElementById(helpSpanId).innerHTML = 'Loading...';
    }
    }

    // CREATION DE LOBJET SELON LE NAVIGATEUR
    function CreateXmlHttpObject(stateChangeHandler) {

    try
    {
    // Firefox, Opera 8.0+, Safari
    httpRequest = new XMLHttpRequest();
    }
    catch (e)
    {
    // Internet Explorer
    try
    {
    httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
    try
    {
    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e)
    {
    alert("Your browser does not support AJAX... The eHelp tips won't be displayed");
    }
    }
    }

    httpRequest.onreadystatechange = stateChangeHandler;
    return httpRequest;
    }
    Les faits:
    Sous FF, ca marche.
    Sous IE, j'ai le Loading qui s'affiche, et apres j'ai la petite icone d'erreur javascript dans la barre de status, avec le message Erreur ligne 37 caractere 7 sur ma page .aspx qui ne m'aide pas beaucoup (la ligne 37 de cette page étant vide dans le code source...)

    Je ne comprends pas trop ce que j'ai mal fait, au debut je pensais que c'était l'objet request mais en fait non puisque j'ai quand meme le message loading.
    C'est quand il passe en state 4 apparement que ca chie, mais je ne comprends pas pourquoi.

    Merci de votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 412
    Points : 303
    Points
    303
    Par défaut
    Ah chaud, je te demanderais si par hasard dans ton infobulle tu as un <form>...

    Si oui, IE gère tres mal les form imbriqué (logique) surtout lorsqu'ils sont appellé via AJAX.
    http://mael-decoster.fr
    Développeur indépendant d'applications web
    http://www.easy-media.fr

Discussions similaires

  1. affichage avec une infobulle
    Par snetechen dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/02/2007, 14h38
  2. [AJAX] Affichage d'une valeur d'un input
    Par Ibanks dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/01/2007, 14h45
  3. [ToolTip] temps d'affichage d'une infobulle
    Par RR instinct dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 10/10/2006, 10h48
  4. [CSS] Problème lors de l'affichage d'une infobulle
    Par nais_ dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 14/09/2006, 09h59
  5. [VB.Net 2.0/NotifyIcon] Pb de durée d'affichage d'une infobulle
    Par exclusif dans le forum Windows Forms
    Réponses: 10
    Dernier message: 19/08/2006, 22h41

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