L'erreur est ici:
console.log(result);
supprimer cette ligne et tout devrait bien se passer.
L'objet console
est un objet Firebug (se réfère à la console Firebug). Safari/Chrome arrive aussi à implémenter un objet console
(se réfère à la console Webkit js). Firefox, en effet les autres navigateurs n'ont pas d'objet console. Donc ça jette une erreur.
BTW: Comme d'habitude, les évaluations sont complètement inutiles. Ce code est exactement équivalent:
for (key in document) {
result[i] = typeof document[key];
result[i+1]="document."+key;
i+=2;
}
Si vous insistez pour appeler request
puis utilisez comme référence:
var request = window.document;
for (key in request) {
result[i] = typeof request[key];
result[i+1]=request+"."+key;
i+=2;
}
Si vous insistez sur le passage des noms d'objet par chaîne, pour des raisons de santé mentale de eval d'une manière moins déroutante:
var string = "window.document";
eval("var request ="+string);
for (key in request) {
result[i] = typeof request[key];
result[i+1]=request+"."+key;
i+=2;
}
bien que je ne ferais pas même que (parfois il est nécessaire, mais que très rarement).
Pourquoi avez-vous besoin d'utiliser eval à nouveau? –
Un eval dans un eval, j'espère que vous avez une clôture de raptor. – MooGoo
Si seulement JavaScript avait une instruction goto que je pourrais lancer ... – Michael