愚蠢的问题,但是当我写作时,window.onload = alert('hi')我得到警报.
但是,如果我测试它的存在:if (window.onload) alert("exists")我得到undefined.怎么会?
您正在调用alert方法(立即执行)并将其返回值(undefined)分配给onload.
如果要为此分配函数,onload则需要分配实际函数,而不是任何旧函数调用的返回值.
例如:
onload = function () {
alert('hi');
};
Run Code Online (Sandbox Code Playgroud)
要么
function createHiAlertFunction() {
return function () {
alert('hi');
}
}
onload = createHiAlertFunction();
Run Code Online (Sandbox Code Playgroud)
但是,一般来说,您应该避免将事物分配给事件处理程序属性并使用事件绑定方法.这样,如果您想要调用多个函数,则无需处理任何事情.
window.addEventListener('load', function () {
alert('hi');
});???
Run Code Online (Sandbox Code Playgroud)
请注意,旧版IE不支持这一点,因此您可能希望使用众多库中的一个(例如YUI或jQuery),这些库提供的抽象层包括对旧的专有Microsoft方式的支持.
| 归档时间: |
|
| 查看次数: |
1834 次 |
| 最近记录: |