Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';onload事件是否按预期绑定了'this'变量?_Javascript_Web Services_Web Applications - Fatal编程技术网

Javascript 为什么';onload事件是否按预期绑定了'this'变量?

Javascript 为什么';onload事件是否按预期绑定了'this'变量?,javascript,web-services,web-applications,Javascript,Web Services,Web Applications,有人知道为什么onload事件没有像预期的那样绑定这个变量吗 就像在这个测试脚本中一样,onkeydown给我们提供true(这个工作正常),但onload给我们提供false(这个现在指向window..wth?): 函数f(t){ 预警(t==单据体); } 请参阅: HTMLBodyElement.onload 公开窗口获得焦点时要调用的事件处理程序 请注意,此处理程序是在事件到达窗口而不是body元素时触发的。用于将事件侦听器附加到body元素 重要的是,当事件到达窗口时会触发此处理程

有人知道为什么onload事件没有像预期的那样绑定
这个
变量吗

就像在这个测试脚本中一样,onkeydown给我们提供true(
这个
工作正常),但onload给我们提供false(
这个
现在指向window..wth?):


函数f(t){
预警(t==单据体);
}
请参阅:

HTMLBodyElement.onload

公开窗口获得焦点时要调用的事件处理程序

请注意,此处理程序是在事件到达窗口而不是body元素时触发的。用于将事件侦听器附加到body元素

重要的是,当事件到达窗口时会触发此处理程序。处理程序在
窗口
的上下文中执行,而不是在
正文
中执行


FWIW,
警报(window.onload===document.body.onload)
将产生
true

它实际上是一个窗口事件AFAIK。只是猜测一下,可能没有其他明确的方法可以将其作为属性放入html中,因此它最终出现在
body
标记上……试试Just alert(t)。我的直觉是它可能是
窗口
@natedavisolds。。我知道这是一扇窗户,但不知道为什么它是一扇窗户。你的问题没有得到回答吗?@RobG在得到回答之前,我问了这个问题。。没想到它们是相关的,但请注意,参考是Mozilla文档,而不是W3C。也请看报纸上怎么说。
<!DOCTYPE html>
<html><head>
<script>
function f(t){
alert(t===document.body);
}
</script>
</head><body onkeydown="f(this);" onload="f(this);">

</body></html>