Firefox erreur "aucun élément trouvé"

Tout d'abord, ce n'est pas exactement la façon idéale de mise en page, cependant, il ya un besoin de distribuer un script que 1 fichier.

J'ai un script php en haut d'un document xhtml avec javascript, et sous certaines conditions d'utilisation XHR pour envoyer une chaîne de requête à la page elle-même. Le php en haut, puis active, et stocke le passé le contenu de la session, puis se tue elle-même (exit()). Le XHR est asynchrone et n'est jamais vérifié pour voir si elle renvoie le contenu.

Cependant dans Firefox 3, la console d'erreur renvoie une erreur no element found à chaque fois que la demande XHR est envoyé. Aussi, si j'utilise une sortie comme exit('Done'), Firefox renvoie une erreur de syntaxe de (Faire) comme s'il s'insère dans le visible DOM. Cela ne semble pas se produire à l'Opéra.

Est-il une meilleure façon de stocker une session à partir d'un déjà généré page xhtml? Évidemment, je pourrais XHR vers une autre page, mais je préfère garder le tout sur un script. Est-ce que Firefox traiter les demandes XHR de soi que les mises à jour vers les DOM? Je ne sais pas pourquoi c'est l'envoi de cette erreur.


Mise à jour Comme je l'ai dit, firefox uniquement thows l'erreur lors de la XHR demande est faite. La page est valide XHTML et fonctionne parfaitement, sans erreur, à moins que la demande XHR est faite à la page elle-même.

Je me demandais pourquoi il était d'envoyer le message d'erreur, car il n'a vraiment rien retourner.

Voici un extrait de code javascript qui fait une requête ajax à partir d'un objet.
Il crée un objet XHR, sans une fonction de rappel, et les postes de l'information. Il fonctionne correctement lorsqu'il n'est pas référence à la même page.

 var saveState = { saveContent: function(updateActiveMenu) {
    var sendState = new ajaxObject(gV.url);
    if (!updateActiveMenu) {
        var storageContainer = document.getElementById("StorageContainer").innerHTML;
        var menu = document.getElementById("Nav").innerHTML;
        sendState.update("Containerstring="+urlencode(storageContainer)+"&Nav="+urlencode(menu)+"&Active="+gV.activeMenuItem, 'POST', true);    } }, }

Et le php n'cette

if (isset($_REQUEST['Containerstring']) && isset($_REQUEST['Nav']) && isset($_REQUEST['Active'])) {
  $_SESSION['Containerarray'] = (saveContainer(regulateEscapes(urldecode($_REQUEST['Containerstring']))));
  $_SESSION['Navarray'] = (saveNav(regulateEscapes(urldecode($_REQUEST['Nav']))));
  $_SESSION['Active'] = $_REQUEST['Active'];
  exit('Done'); 
}

Je suis aussi conscient que je ne devrais pas être en utilisant innerHTML, mais c'est une autre histoire


L'erreur est ce

Error: no element found
Source File: http://localhost/ajax.php?1244648094055 
Line: 1

Remarque que l'erreur, tandis que sur la page php que j'utilise, fait référence à une chaîne de requête qui n'est jamais appelée.

  • il y a une certaine incohérence dans ce que vous décrivez. si xhr n'utilise jamais la valeur de retour (qui est 'Fait'), alors il ne peut pas l'insérer dans un DOM, maintenant peut-il?
  • mieux encore poster quelques petits exemple de votre code.
  • Pourquoi ne pas mettre les parties pertinentes de la source de la page jusqu'?
  • Apparemment Firefox sortie de ce message lorsqu'un corps de la réponse est vide (comme une image avec Content-Length: 0)
InformationsquelleAutor Ian Elliott | 2009-06-10