【发布时间】:2010-01-12 15:09:25
【问题描述】:
我有一段 javascript 代码。而且我不是很明白。 你能逐行解释吗?非常感谢。
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
这就是我的想法:
function addLoadEvent(func) { //define a function with a parameter 'func'
var oldonload = window.onload; //assign window.onload event to variable oldonload
if (typeof window.onload != 'function') { //if window.onload is not a function, then...
window.onload = func; //assign 'func' to window.onload event. what does func mean?
} else { //if window.onlad is a function
window.onload = function() { //don't understand
oldonload(); //call function oldonload()
func(); //call function func()
}
}
}
困惑:
window.onload 已经是一个事件了,为什么还要使用 typeof?
函数 addLoadEvent(func) , window.onload = func, func()。这些功能有什么区别?
很抱歉发布了一个新手问题。但是感谢任何给我一些指导的人?
编辑:
这是 Simon Willison 改进的原始代码。
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
【问题讨论】:
-
这是 Simon Willison 在 2004 年最初编写的一些代码的旧版本:simonwillison.net/2004/May/26/addLoadEvent 请注意,Simon 在 2006 年更新了代码以处理 IE7 上的潜在问题 - 您可能想要合并他的更新.
-
感谢尼克菲茨提供的信息。我已经检查过了。
-
感谢大家的回复和解释。 :)
标签: javascript