Ошибка здесь:
console.log(result);
удалите эту строку, и все должно быть в порядке.
Объект console
- это вещь Firebug (относится к консоли Firebug).В Safari / Chrome также реализован объект console
(относится к консоли Webkit js).Firefox, действительно, другие браузеры не имеют консольного объекта.Так что выдает ошибку.
Кстати: как обычно, уловки совершенно не нужны.Это в точности эквивалентный код:
for (key in document) {
result[i] = typeof document[key];
result[i+1]="document."+key;
i+=2;
}
Если вы настаиваете на его вызове request
, тогда используйте его как ссылку:
var request = window.document;
for (key in request) {
result[i] = typeof request[key];
result[i+1]=request+"."+key;
i+=2;
}
Если вы настаиваете на передаче имен объектов по строке,тогда ради здравомыслия используйте eval в менее запутанном виде:
var string = "window.document";
eval("var request ="+string);
for (key in request) {
result[i] = typeof request[key];
result[i+1]=request+"."+key;
i+=2;
}
Хотя я бы не стал этого делать (иногда это необходимо, но очень редко).