Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.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 '的奇怪行为;这';内部';车身';标签_Javascript - Fatal编程技术网

Javascript '的奇怪行为;这';内部';车身';标签

Javascript '的奇怪行为;这';内部';车身';标签,javascript,Javascript,我知道使用内联javascript确实是一种糟糕的做法 但就为了实验,我试着做一些事情,比如: <body onclick="this.style.background='#ff0000';"> Hello </body> 很好 有谁能帮助我理解,为什么会发生这种情况 这是因为body onload内部转换为window.onload?(以便window.style变得未定义?) 还是别的什么 感谢任何帮助和建议。当事件由用户启动时,如用户单击后触发的oncl

我知道使用
内联javascript
确实是一种糟糕的做法

但就为了实验,我试着做一些事情,比如:

<body onclick="this.style.background='#ff0000';">
     Hello
</body>
很好

有谁能帮助我理解,为什么会发生这种情况

这是因为
body onload
内部转换为
window.onload
?(以便
window.style
变得未定义?)

还是别的什么


感谢任何帮助和建议。

当事件由用户启动时,如用户单击后触发的
onclick
,这意味着用户正在直接交互,
将引用绑定事件的元素,在本例中为
主体


onload
的情况下,它不是用户启动的事件,因此
引用
窗口
对象。

如您所述,当您尝试
onload
时,
将引用窗口对象

<body onload="this.style.background='#ff0000';">
     Hello
</body>

你好
您可以使用以下方法进行尝试:

<body onload="console.log(this instanceof Window)">


是的,
指的是
窗口
“是因为body onload在内部转换为Window.onload吗?”。正是。谢谢你花时间回答+1.@VedantTerkar很高兴能帮助你:)谢谢你花时间回答+1.
<body onload="this.style.background='#ff0000';">
     Hello
</body>
<body onload="console.log(this instanceof Window)">