function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}else{
window.onload = function() {
oldonload;
func();
}
}
}
和
<link rel="stylesheet" type = "text/css" media="screen" href="styles/typography.css">
<script type="text/javascript" src="scripts/addLoadEvent.js">
</script>
<script type="text/javascript" src="scripts/displayCitations.js">
</script>
<script type="text/javascript" src="scripts/displayAccessKeys.js">
</script>
<script type="text/javascript" src="scripts/displayAbbreviations.js">
</script>
为什么我的函数addLoadEvent总是上传最后一个JavaSript文件,而另外两个文件被覆盖?
答案 0 :(得分:1)
您没有致电oldonload
。
window.onload = function() {
oldonload(); // <-- need () there
func();
}
考虑使用addEventListener
。
答案 1 :(得分:0)
您正在做的事情实际上不是拥有多个事件处理程序的正确方法。相反,只需使用window.addEventListener()
,因为具有多个事件处理程序的功能已经内置,并且没有理由重新发明它。
function addLoadEvent(func) {
window.addEventListener("load", func);
}