JS的onload執行順序
可能你也碰到過這種情況 , 就是在 js 的程式碼中用了 window.onload 後 , 可能會影響到 body 中的onload 事件。你可以全寫在 body 中,也可以全放到 window.onload 中,但是這樣並不是很方便,有時我們需要兩個同時用到。這時就要用 window.attachEvent 和 window.addEventListener 來解決一下。
下面是一個解決方法。
if (document.all){
window.attachEvent('onload', 函式名 )//IE 中
}
else{
window.addEventListener('load',
} 在近來的工作中,用到了 attachEvent 方法,該方法可以為某一事件附加其它的處理事件,有時候可能比較有用,這裡將其基本用法總結一下。
其語法可以檢視《 DHTML 手冊》,裡面有詳細的說明,這裡貼一個例子,該例子來自網際網路:
document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;
如果這樣寫
寫成這樣:
var btn1Obj = document.getElementById("btn1");
//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);
執行順序為 method3->method2->method1
如果是 Mozilla 系列,並不支援該方法,需要用到
var btn1Obj = document.getElementById("btn1");
//element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);
執行順序為 method1->method2->method3
綜合例項:
window.onload=function(){function1();function2();}
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);
因此要想在你的程式中給一個事件指派多個處理過程的話,只要首先判斷一下瀏覽器,然後根據不同的瀏覽器,選擇使用 attachEvent 還是 addEventListener 就可以了。例項如下
if (document.all) {
window.attachEvent('onload', handler1);
window.attachEvent('onload', handler2);
} else {
window.addEventListener('load', handler1, false);
window.addEventListener('load', handler2, false);
}
<script type="text/javascript">
window.onload = function(){
var SDmodel = new scrollDoor();
SDmodel.sd(["m01","m02","m03","m04","m05"],["c01","c02","c03","c04","c05"],"sd01","sd02");
MqObj(leftnext,"960","109","10","")
}
</script>
相關推薦
jquery的AJAX中各個事件執行順序
.ajax star ajaxstop jquery ajax let start 執行 .com jquery的AJAX中各個事件執行順序如下: 1.ajaxStart(全局事件) 2.beforeSend 3.ajaxSend(全局事件) 4.success 5.aja
[貪心]任務執行順序
div 存儲 printf sum cmp .com color course str https://www.51nod.com/tutorial/course.html#!courseId=23 題目大意:有$N$個任務需要執行,第$i$個任務計算時占$R[i]$個空
Unity3D事件函數的執行順序
攝像機 觸發 var med lac 視圖 專業 chains war In Unity scripting, there are a number of event functions that get executed in a predetermined order
python unittest控制用例的執行順序
運行時 pytho 接口測試 改名 改名字 一個 運行 如果 order 為什麽要進行順序控制呢?使用過testng的同學就知道,它相對於junit來說有更強大的功能,其中的一個功能就是依賴測試。什麽是依賴測試呢?簡單的說一下就是,A方法運行時,其中有個變量的取值是B方法的
try...catch...finally執行順序
output put span foo finally log div () pan 1 package test; 2 3 public class TestDemo { 4 5 public static String output =
JFinal 配置類 方法執行順序
處理器 模板引擎 jfinal 擴展 ant 數據 void route intercept 1、public void configConstant(Constants me) 常量配置方法,一般 在裏面 讀取 配置文件 2、public void configRoute
JS中事件的執行順序和AJAX的異步
容易 jquery 博客 出現問題 同步 內容 img 留言 加載 之前了解過異步和同步,知道同步是順序執行,異步是同時執行,但是沒有遇到過這種情況,不是很理解,這兩天做項目突然遇到了,對這有了一個初步的認識。廢話不多說,直接上要求。 1.項目要求:外部調用x
Jmeter學習筆記2-原件作用域與執行順序
校驗 height sse proc tro 有效 收集 技術分享 控制 1.元件的作用域 (1)配置元件(config elements):會影響其作用範圍內的所有元件。 (2)前置處理程序(per-processors):在其作用範圍內的每一個sampler元件之
jQuery源碼05 (3653 , 3797) queue() : 隊列方法 : 執行順序的管理
jquer jquery exp cache 之前 ise 參數 last 匿名 //對外接口 jQuery.extend({ queue: function( elem, type, data ) {//入隊。元素、隊列名字、存進去的函數 //jQuer
關於CyclicBarrier的執行順序
ren left p s 說明 star oop event @override open 認識CyclicBarrier, 先看兩個文檔介紹 CyclicBarrier(int parties, Runnable barrierAction) Creates
java類執行順序問題
面試題 ext per 類的構造函數 on() system 靜態代碼塊 父類 rgs 經常遇到的面試題,一個類繼承另一個類然後問輸出的結果是什麽。個人覺得就是考類的輸出問題(親測) 第一:單一的類執行順序 package Test; public class person
UIViewController的生命周期及iOS程序執行順序
控制器 程序 動態 當一個視圖控制器被創建,並在屏幕上顯示的時候。 代碼的執行順序1、 alloc 創建對象,分配空間2、init (initWithNibName) 初始化對象,初始化數據3、loadView
final、static、代碼塊、靜態代碼塊、內部類、代碼執行順序
調用 logs 構造代碼塊 tro 而且 classes phi println tina final final域使得確保初始化安全性(initialization safety)成為可能,初始化安全性讓不可變形對象不需要同步就能自由地被訪問和共享 作用在類上
Java構造塊,靜態代碼塊,構造方法執行順序
構造方法 就會 -1 static關鍵字 demo args http cnblogs pub 構造塊:直接寫在類中的代碼塊 靜態代碼垮:使用static關鍵字聲明的代碼塊 靜態代碼塊先於構造塊,構造方法執行,而且只在類加載時候執行一次,後面在類實例化的時候會先執行構造塊,
修飾符-包-內部類-代碼塊執行順序
ng- text 默認方法 space stat this 理解 objects cte 1.訪問權限修飾符 從大到小的順序為:public--protected--default--private private--只能在同一類中使用; defa
MySQL sql語句執行順序
left join left 笛卡爾積 ner 別名 join 例如 結果 detail sql語句select語句查詢順序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <
group by having執行順序
時間 執行 百度 where tro 順序 weight red order 原文發布時間為:2009-07-28 —— 來源於本人的百度文章 [由搬家工具導入]核心原理where>group>having
linux命令類型及執行順序
linux基本命令分類及執行原理linux命令類型及執行順序一、命令分類linux命令分為兩類,具體為內部命令和外部命令內部命令: 指shell內部集成的命令,此類命令無需人為安裝,開機後自動運行在內存中,命令help查看所有內部命令的詳情,如cd、type、echo、time、true等。外部命令
Spring AOP @Before @Around @After 等 advice 的執行順序
繼續 case tco ann cto order software clas spec 用過spring框架進行開發的人,多多少少會使用過它的AOP功能,都知道有@Before、@Around和@After等advice。最近,為了實現項目中的輸出日誌和權限控制這兩個需求
【轉】JMeter學習(三)元件的作用域與執行順序
ces ner 處理器 規則 fig 子節點 控制器 conf 節點 1.元件的作用域 JMeter中共有8類可被執行的元件(測試計劃與線程組不屬於元件),這些元件中,取樣器是典型的不與其它元件發生交互作用的元件,邏輯控制器只對其子節點的取樣器有效,而其它元件(config