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
A voir également:
- Javascript : 'Erreur : Objet Requis'
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
- Javascript arrondi après la virgule ✓ - Forum Windows
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,
Bonjour,
Je débute tout juste dans le parsage de XML, j'ai donc utilisé ce que j'ai trouvé par ci par la.
Pourrais-tu m'expliquer plus en détail ta façon de voir la chose s'il te plais ? Je ne sais pas comment appeler un noeur d'après un ID...
Merci pour ta réponse, bonne journée.
Baptiste
Je débute tout juste dans le parsage de XML, j'ai donc utilisé ce que j'ai trouvé par ci par la.
Pourrais-tu m'expliquer plus en détail ta façon de voir la chose s'il te plais ? Je ne sais pas comment appeler un noeur d'après un ID...
Merci pour ta réponse, bonne journée.
Baptiste
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