2014-11-04 4 views
-4

У меня есть этот код:Как определить переменную w внутри javascript-кода?

var w; 
if (window.eventListener) w.addEventListener('load', startSlideShow, false); 
    else w.addEventListener('onload', startSlideShow); 

Сначала не было вар ш; Так что, когда я просмотрел на страницу и сделал осмотр elemnt я видел в красном сообщении говорит:

Uncaught ReferenceError: вес не определен в строке 181

Теперь после того, как я добавил строку уаг W; я снова осмотреть elemnt и теперь я вижу в красном цвете:

Uncaught TypeError: Не удается прочитать свойство «addEventListener» неопределенной

Так я думаю, просто делает уаг Вт; это не правильный путь. Итак, как определить переменную w?

+0

Что такое 'w'? Является ли «окно»? Почему бы просто не использовать «окно»? – Andy

+1

'var w = window;' –

+3

@ Andy: потому что он, вероятно, скопировал этот код откуда-то и не знает, как это работает. –

ответ

6
var w = some_value_which_needs_to_be_an_object_with_an_addEventListener_method; 

Поскольку вы используете событие загрузки, которое может быть изображением, iframe или, возможно, объект главного окна.

+0

ха-ха! люблю его .. – Flosculus

1

Вместо w используйте window:

if (window.eventListener) 
    window.addEventListener('load', startSlideShow, false); 
else 
    window.addEventListener('onload', startSlideShow); 
0

Чтобы объяснить природу ошибки.

С var w; переменной w только объявлен, или переменная набор, но это также null (или undefined, в зависимости от Javascript предпочитает ...).

Использование .addEventListener обрабатывает переменную как ссылку на объект, потому что вы пытаетесь вызвать метод потенциального объекта.

Однако, поскольку переменная имеет «ничего» назначенное (предоставленное значение), вы пытаетесь вызвать метод на несуществующем объекте, обычно приводящем к таким языкам, как Java, как NullPointerException.

То есть, используя/доступ к собственности/методу того, что не существует. Как и ожидая получить что-то из пустой коробки.

+0

'var w' ->' w == undefined'. Не 'null'. – Cerbrus

+0

@Cerbrus, когда в javascript вы понесли разницу между 'null' и' undefined'? – Flosculus

Смежные вопросы