我有这段代码:
var w;
if (window.eventListener) w.addEventListener('load', startSlideShow, false);
else w.addEventListener('onload', startSlideShow);
首先没有var w; 因此,当我浏览页面并检查了elemnt时,我看到一条消息说:
未捕获的ReferenceError:w未在第181行定义
现在我添加了行var w; 我再次检查了elemnt,现在我看到了红色:
未捕获的TypeError:无法读取未定义的属性“addEventListener”
所以我想做var w;不是正确的方法。 那么我如何定义变量w?
答案 0 :(得分:6)
var w = some_value_which_needs_to_be_an_object_with_an_addEventListener_method;
由于您使用的加载事件可能是图像,iframe或主窗口对象。
答案 1 :(得分:1)
而不是w
,请使用window
:
if (window.eventListener)
window.addEventListener('load', startSlideShow, false);
else
window.addEventListener('onload', startSlideShow);
答案 2 :(得分:0)
解释错误的性质。
var w;
仅声明变量w
或设置变量,但它也是null
(或undefined
,无论javascript更喜欢......)。
使用.addEventListener
将变量视为对象的引用,因为您正在尝试调用该对象的方法。
但是因为变量没有"没有"如果已分配(提供值),则尝试在不存在的对象上调用方法,通常会将Java等语言作为NullPointerException
。
即,使用/访问不存在的属性/方法。就像期待从空盒子里得到一些东西一样。