addLoadEvent函數: 眾所周知,html文檔載入完後會立即執行一個onload函數。但是onload函數只能包含一個被執行的函數,也就是你需要在載入完文檔後執行的一個自己的函數。在實際中html載入完成後需要執行很多預先執行的函數,那麼怎樣才能讓html文檔載入完後執行很多自己的函數呢? ...
addLoadEvent函數:
眾所周知,html文檔載入完後會立即執行一個onload函數。但是onload函數只能包含一個被執行的函數,也就是你需要在載入完文檔後執行的一個自己的函數。在實際中html載入完成後需要執行很多預先執行的函數,那麼怎樣才能讓html文檔載入完後執行很多自己的函數呢?
1. 最簡單的方法:回調
window.onload = function(){
function1();
function2();
}
2.另一種解決辦法:
function addLoadEvent(func){
var oldonload = window.onload;
if(typeof oldonload != 'function'){
window.onload = func();
}else{
window.onload = function(){
oldonload();
func();
}
}
}
然後再js腳本里執行:
addLoadEvent(function1);
addLoadEvent(function2);
......
它就會在html載入完成後自動的執行window.onload。 其實這個函數和上一個簡化版本的功能是一樣的。 只不過簡化版本需要修改函數內部數據,在需要預載入函數過多的情況下容易寫錯函數名,造成載入錯誤。而第二個函數只需要調用函數並傳參就可以了。不必動用函數內部造成不必要的錯誤。
------------------------------------------------------------------------------------------分割線---------------------------------------------------------------------------------------
insertAfter函數:
DOM雖然提供了insertBefore函數,用於在已有元素前插入一個新元素,但是DOM沒有提供相應的方法在已有元素後插入一個新元素的方法。 所以需要自己編寫一個函數,來處理這項工作:
函數如下:
function insertAfter(newElement,targetElement){
var parent = targetElement.parentNode;
if(parent.lastChild == targetElement){
parent.appentChild(newElement);
}else{
parent.insertBefore(newElement,targetElement.nextSibling);
}
}
這個函數不用過多解釋了,一目瞭然!