Javascript : 'Erreur : Objet Requis'
Melkor
-
Melkor -
Melkor -
Bonjour,
Je suis en train de taffer sur un projet en partie réalisée avec AJAX et XML, et je me retrouve bloqué sur un problème d'objet requis :/
Mon code marche parfaitement sous FF (normal, comme d'hab) mais IE fait chier (encore une fois , comme d'hab).
Je vous colle en dessous ma fonction qui plante :
Au moment ou j'exécute la fonction, j'ai une erreur, et mon code semble bloquer au moment ou il passe sur cette ligne : getId('cartes_fullscreen').innerHTML = html[0].firstChild.nodeValue;
Si quelqu'un sait de quoi il en retourne...
En espérant avoir été clair, et dans l'attente de réponses ^^, merci d'avance.
Baptiste
Je suis en train de taffer sur un projet en partie réalisée avec AJAX et XML, et je me retrouve bloqué sur un problème d'objet requis :/
Mon code marche parfaitement sous FF (normal, comme d'hab) mais IE fait chier (encore une fois , comme d'hab).
Je vous colle en dessous ma fonction qui plante :
/** fonction pour l'affichage de la carte région agrandie en plein ecran **/
function afficherCarteFullscreen(pays, region, saison)
{
opacityOn();
getId('cartes_fullscreen').style.display = 'block';
getId('cartes_fullscreen').innerHTML = '<img id="loading" src="site/media/descriptifs/loading_bar.gif" alt="" title="" />';
var data = 'pays=' + pays + '®ion=' + region + '&saison=' + saison;
xhr = createRequestObject();
xhr.onreadystatechange = function ()
{
if(xhr.readyState == 4)
{
if (xhr.status == 200)
{
var docXML = xhr.responseXML; //Objet permettant de gérer le xml généré dans le script PHP
stations = docXML.getElementsByTagName('station');
var html = docXML.getElementsByTagName('template');
getId('cartes_fullscreen').innerHTML = html[0].firstChild.nodeValue;
getId('img_grande_carte').src = 'site/media/cartes/' + pays + '/' + region + '/generale.png';
// on assigne des margin aux images/points représentant les stations; on les positionne
for(var i = 0; i < stations.length; i++)
{
getId('station_' + stations[i].getAttribute('code')).style.margin = stations[i].getElementsByTagName('coordonnee_y')[0].firstChild.nodeValue + 'px 0px 0px ' + stations[i].getElementsByTagName('coordonnee_x')[0].firstChild.nodeValue + 'px';
}
}
else alert(xhr.status + " " + xhr.statusText);
}
};
xhr.open("POST", "site/includes/cartes/ajax_cartes_fullscreen.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
}
Au moment ou j'exécute la fonction, j'ai une erreur, et mon code semble bloquer au moment ou il passe sur cette ligne : getId('cartes_fullscreen').innerHTML = html[0].firstChild.nodeValue;
Si quelqu'un sait de quoi il en retourne...
En espérant avoir été clair, et dans l'attente de réponses ^^, merci d'avance.
Baptiste
Configuration: Windows XP Pro Firefox 3.0.3 / Internet Explozer 6/7
A voir également:
- Javascript : 'Erreur : Objet Requis'
- Telecharger javascript pour pc - Télécharger - Langages
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi ✓ - Forum Windows
- Javascript arrondir à 2 décimales - Forum Webmastering
- Javascript void 0 c'est quoi ✓ - Forum Réseaux sociaux
5 réponses
Bonsoir Melkor,
J'ai juste une question :
html[0].firstChild.nodeValue : pourquoi n'utilises-tu pas un identifiant pour récupérer ton élément, vu qu'il est fixe? Ca t'éviterait d'avoir des problèmes de compatibilité comme celui-là.
Cordialement,
J'ai juste une question :
html[0].firstChild.nodeValue : pourquoi n'utilises-tu pas un identifiant pour récupérer ton élément, vu qu'il est fixe? Ca t'éviterait d'avoir des problèmes de compatibilité comme celui-là.
Cordialement,
Salut,
Merci pour tes précisions Alain, mais ça je connais déjà. C'est surtout a propos du XML que je suis pas dans mon élément. Je n'ai pas vraiment compris ce que Marco a voulu me dire, on peut mettre des id à nos balises XML ??
Bonne journée
Merci pour tes précisions Alain, mais ça je connais déjà. C'est surtout a propos du XML que je suis pas dans mon élément. Je n'ai pas vraiment compris ce que Marco a voulu me dire, on peut mettre des id à nos balises XML ??
Bonne journée
Bonjour,
Quand tu fais ceci :
Tu récupères toujours le même objet (le premier noeud 'template' de ta réponse).
Autrement dit, si ton XML ressemble à un truc comme ça, tu récupères le tag en gras :
Ma question était donc : vu que tu récupères toujours le même élément (le premier tag template), pourquoi n'utilises-tu pas un identifiant :
Dans ton javascript tu aurais donc quelque chose du genre :
Cordialement,
Quand tu fais ceci :
...
var html = docXML.getElementsByTagName('template');
getId('cartes_fullscreen').innerHTML = html[0].firstChild.nodeValue;
...
Tu récupères toujours le même objet (le premier noeud 'template' de ta réponse).
Autrement dit, si ton XML ressemble à un truc comme ça, tu récupères le tag en gras :
<?xml version="1.0" encoding="ISO-8859-1"?> <root> <station>blabla</station> <template>...</template> <template>...</template> <template>...</template> </root>
Ma question était donc : vu que tu récupères toujours le même élément (le premier tag template), pourquoi n'utilises-tu pas un identifiant :
<?xml version="1.0" encoding="ISO-8859-1"?> <root> <station>blabla</station> <template id="firstTemplate">...</template> <template>...</template> <template>...</template> </root>
Dans ton javascript tu aurais donc quelque chose du genre :
...
getId('cartes_fullscreen').innerHTML = docXml.getElementById('firstTemplate').value;
...
Cordialement,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question