Почему я получаю эту ошибку во время выполнения Javascript? - PullRequest
4 голосов
/ 07 октября 2008

У меня есть следующий JavaScript на моей веб-странице ...

64    var description = new Array();
65    description[0] = "..."
66    description[1] = "..."
...
78    function init() {
79        document.getElementById('somedivid').innerHTML = description[0];
80    }
81
82    window.onload = init();

В Microsoft Internet Explorer это вызывает следующую ошибку ...

Произошла ошибка во время выполнения.
Вы хотите отладить?

Линия: 81
Ошибка: не реализовано

javascript runtime error

Строка 79 выполняется должным образом.

Если строка 79 закомментирована, она все равно выдает ошибку.

Если я закомментирую строку 82, функция не будет выполнена и ошибки не будет.

Ответы [ 5 ]

13 голосов
/ 07 октября 2008

Не следует в строке 82 читать:

window.onload = init;

Когда вы делаете "init ()", это вызов функции, которая возвращает void. В конечном итоге вы вызываете эту функцию до загрузки страницы.

2 голосов
/ 07 октября 2008

Чтобы сохранить все ранее установленные функции загрузки, попробуйте это

var prevload = window.onload;
window.onload = function(){
    prevload();
    init();
}
1 голос
/ 07 октября 2008

Попробуйте вместо этого добавить прослушиватель envent для 'load' или используйте декларативный синтаксис <body onload="init()">.

РЕДАКТИРОВАТЬ: Кроме того, говоря window.onload = init(); устанавливает window.onload в результате вызова init(). Вы имеете в виду window.onload = init; (лямбда-выражение). Это все еще плохая практика, поскольку она перезаписывает другие вещи, которые могут быть связаны с window.onload.

0 голосов
/ 07 октября 2008

Попробуйте запустить его в FireFox с включенным плагином FireBug . Это позволит вам отладить JavaScript

0 голосов
/ 07 октября 2008

В дополнение к предлагаемым здесь исправлениям загрузки также проверьте, есть ли несколько элементов с этим идентификатором. Я полагаю, что IE вернет коллекцию всех элементов с этим идентификатором, и в этом случае вам нужно будет выбрать нужный элемент. из коллекции перед доступом к этому свойству или убедитесь, что вы используете уникальные идентификаторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...