我正在使用此代码在页面加载后立即触发函数:
function loadpapi(){
alert("Hello World!");
}
function pctaddLoadEvent(func) {
var oldonload = document.onload;
if (typeof document.onload != 'function') {
document.onload = func;
} else {
document.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
pctaddLoadEvent(loadpapi());
但是在页面加载之前启动,您可以在此处尝试:http://jsfiddle.net/KuTxh/
答案 0 :(得分:2)
pctaddLoadEvent(loadpapi());
此代码调用 loadpapi
(就像任何其他函数调用一样)并将结果传递给pctaddLoadEvent
。
您希望在不调用它的情况下传递函数。
答案 1 :(得分:2)
我将活动从document.onload
更改为window.onload
:请参阅讨论here。
此document.onload
vs window.onload
是一个复杂的主题。您的浏览器根本不会触发document.onload
事件。 (或者,当一个人处理窗口而另一个处理DOM树时,当你的javascript函数采取行动时,document.onload
事件可能已被触发 - 更多测试可以确认这一点。)
此外,作为参数传递的函数没有()
,因为您想要传递函数本身,而不是它的返回值。
function loadpapi(){
alert("Hello World!");
}
function pctaddLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
pctaddLoadEvent(loadpapi);
检查演示小提琴:http://jsfiddle.net/st4kQ/