使用onload事件往往在body標籤上註冊,使用:οnlοad=function_name();的方式 不過這種方式只能在ie上使用,若是再ff上,就失去了效果,導致頁面會有錯誤
解決這個問題可使用以下方法
if(window.addeventlistener)
else
if(window.attachevent)
function init()
這樣就分別在不同的瀏覽器上呼叫不同的事件註冊方法,註冊onload事件。
attachevent和addeventlistener不僅可有window物件來呼叫(這時就是想window物件註冊某個事件),也可以由其他物件呼叫
,如向按鈕註冊onclick事件,如下:
var btn_obj= document.getelementbyid("btn1");
btn_obj.attachevent("onclick",method1);
btn_obj.attachevent("onclick",method2);
btn_obj.attachevent("onclick",method3);
//執行順序為method3->method2->method1
//如果是ff,並不支援該方法
addeventlistener var btn_obj= document.getelementbyid("btn1");
btn_obj.addeventlistener("click",method1);
btn_obj.addeventlistener("click",method2);
btn_obj.addeventlistener("click",method3);
//執行順序為method1->method2->method3
//當然你也可以直接對某個視覺化元件設定某種屬性的值,仍用button為例
document.getelementbyid("btn").onclick = method1;
document.getelementbyid("btn").onclick = method2;
document.getelementbyid("btn").onclick = method3;
//如果這樣寫,那麼將會只有medhot3被執行
//這就是這種方法和上面註冊的方式之間的區別,
//不過一般不會有這麼多onclick發生,哈哈
JS高階 封裝註冊事件
相容性問題 1 ele.on事件型別 function 乙個元素ele註冊一種事件多次,會被替換成最後乙個,所以有侷限性 2 addeventlistener 事件型別,事件處理函式,usecapture 第三個引數預設是false,冒泡階段執行 3 attachevent 事件型別,事件處理函式 ...
註冊事件,反註冊事件,匿名事件
根據資料動態建立控制項及為控制項動態繫結事件 事件不只乙個,包括匿名方法 現在要訂閱乙個新事件同時取消這個控制項的所有事件.改用反射實現,用反射獲得button的eventhandler,並對它進行反註冊。方法一。propertyinfo propertyinfo typeof button get...
FLEX事件註冊
import mx.controls.alert import flash.events.mouseevent button 事件註冊 bt1.addeventlistener mouseevent.click,onc bt1.addeventlistener mouseevent.mouse mo...