網頁制作poluoluo文章簡介:某段JS中調用了window.onload = function()屬性,同時在頁面上又有body onload語句。
昨晚有一段進站濾鏡效果失效,
研究發現,某段JS中調用了window.onload = function()屬性,同時在頁面上又有body onload語句。導致window.onload事件覆蓋掉body onload事件。
解決方法:
attachEvent給onload添加所需運行的函數
- if (document.all){
- window.attachEvent('onload',FuncName)
- }
- else{
- window.addEventListener('load',FuncName,false);
- }
或者把兩個初始化函數再組成一個新的函數
- function myinit()
- {//兩個函數合並下
- init();
- myfun();
- }
- window.onload=myinit;
另外,見過書上有這樣的寫法:
- function addLoadEvent(func){
- var oldonload=window.onload;
- if(typeof window.onload!='function'){
- window.onload=func;
- }else{
- window.onload=function(){
- oldonload();
- func();
- }
- }
- }
- //添加要加載執行的事件:
- addLoadEvent(aaa);
- addLoadEvent(bbb);