js 中 document.createEvent的用法-轉載

轉載:http://www.cnblogs.com/baizx/archive/2010/08/29/1811745.html

<a class="comment-mod" οnclick="alert('ss')" href="#">評論</a>

如果用戶直接查看文章列表,那麼所有的評論以及評論框都是不顯示的,但是如果用戶通過別的頁面比如首頁的個人動態直接定位到這篇日誌,那麼評論就應該全部顯示。而列表頁和查看單個條目的頁面是同一個頁面,這就要求我判斷一下用戶是否定位到該篇日誌,如果是,就通過JS來觸發 A 標籤的點擊事件。

一開始我嘗試了一些方法,想當然地以爲 A 標籤和按鈕一樣是有 onclick() 事件的,結果發現沒有,後來從網上搜了一些資料之後,成功解決了這個問題^_^ 。解決辦法是針對 IE  FF編寫不同的邏輯,部分代碼如下:
<script>
 var comment = document.getElementsByTagName('a')[0];
 
if (document.all) {
 // For IE

 comment.click();

} else if (document.createEvent) {
   //FOR DOM2
var ev = document.createEvent('HTMLEvents');

 ev.initEvent('click', false, true);
 comment.dispatchEvent(ev);

</script>

   

語法:

createEvent(eventType)

參數

描述

eventType

想獲取的 Event 對象的事件模塊名。

關於有效的事件類型列表,請參閱"說明"部分。

返回值

返回新創建的 Event 對象,具有指定的類型。

拋出

如果實現支持需要的事件類型,該方法將拋出代碼爲 NOT_SUPPORTED_ERR  DOMException 異常。

說明

該方法將創建一種新的事件類型,該類型由參數 eventType 指定。注意,該參數的值不是要創建的事件接口的名稱,而是定義那個接口的 DOM 模塊的名稱。

下表列出了 eventType 的合法值和每個值創建的事件接口:

參數

事件接口

初始化方法

HTMLEvents

HTMLEvent

iniEvent()

MouseEvents

MouseEvent

iniMouseEvent()

UIEvents

UIEvent

iniUIEvent()

用該方法創建了 Event 對象以後,必須用上表中所示的初始化方法初始化對象。關於初始化方法的詳細信息,請參閱 Event 對象參考。

該方法實際上不是由 Document 接口定義的,而是由 DocumentEvent 接口定義的。如果一個實現支持 Event 模塊,那麼 Document 對象就會實現DocumentEvent 接口並支持該方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章