javascript與HTML之間的交互是通過事件來實現的。事件,就是文檔或瀏覽器窗口發生的一些特定的交互瞬間。通常大家都會認為事件是在用戶與瀏覽器進行交互的時候觸發的,其實通過javascript我們可以在任何時刻觸發特定的事件,並且這些事件與瀏覽器創建的事件是相同的。
通過createEvent方法,我們可以創建新的Event對象,這個方法接受一個參數eventType,即想獲取的Event對象的事件模板名,其值可以為HTMLEvents、MouseEvents、UIEvents以及CustomEvent(自定義事件)。這里我們將以CustomEvent為例子進行講解。
首先創建自定義事件對象
var event = document.createEvent("CustomEvent");
然后初始化事件對象
event.initCustomEvent(in DOMString type, in boolean canBubble, in boolean cancelable, in any detail);
其中,第一個參數為要處理的事件名
第二個參數為表明事件是否冒泡
第三個參數為表明是否可以取消事件的默認行為
第四個參數為細節參數
例如:event.initCustomEvent("test", true, true, {a:1, b:2}) 表明要處理的事件名為test,事件冒泡,可以取消事件的默認行為,細節參數為一個對象{a:"test", b:"success"}
最后觸發事件對象
document.dispatchEvent(event);
當然我們需要定義監控test事件的處理程序
document.addEventListener("test", function(e){
var obj = e.detail;
alert(obj.a + " " + obj.b);
});
最后會彈出框顯示"test success"
