我知道使用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
变得不确定?)
还是其他?
任何帮助,建议表示赞赏。
如果事件是由用户启动的(例如,onclick
一旦用户单击即触发事件,这意味着用户直接进行交互),则this
该事件将引用事件绑定到的元素,在这种情况下,body
对于onload
,它不是用户启动的事件,因此this
是指window
对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句