“ body”标签中“ this”的奇怪行为

韦丹特卡

我知道使用inline javascript确实是一个坏习惯。

但是只是为了实验,我试图做一些事情:

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

它正在工作..

但是问题出在什么时候

我这样做:

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

它引发错误: Uncaught TypeError: Cannot set property 'background' of undefined

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

工作正常。

谁能帮我理解,为什么会这样?

是因为body onload内部翻译成window.onload(因此window.style变得不确定?)

还是其他?

任何帮助,建议表示赞赏。

阿米特·乔基(Amit Joki)

如果事件是由用户启动的(例如,onclick一旦用户单击即触发事件,这意味着用户直接进行交互),则this该事件将引用事件绑定到的元素,在这种情况下,body

对于onload,它不是用户启动的事件,因此this是指window对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章