2011-04-19 114 views
8

我想在我的JavaScript中觸發觸摸事件來模擬用戶交互以達到測試功能的目的。我曾嘗試下面的代碼片斷:在支持觸摸的瀏覽器上創建並觸發觸摸事件?

try { 
    var targetElement = document.elementFromPoint(55, 155); 
    console.log(targetElement); 
    var evt = document.createEvent('UIEvent'); 
    evt.initTouchEvent('touchstart', true, true); 

    evt.view = window; 
    evt.altKey = false; 
    evt.ctrlKey = false; 
    evt.shiftKey = false; 
    evt.metaKey = false; 

    targetElement.dispatchEvent(evt); 
} catch (except){ 
    alert(except); 
} 

上面的代碼拋出異常「類型錯誤:表達的結果‘evt.initTouchEvent [未定義]’不是一個函數」。

有人可以指出我做錯了什麼嗎?

回答

9

根據w3c touch spec,TouchEvent是UIEvent的一個子類。嘗試創建它像:

var evt = document.createEvent('TouchEvent'); 
+0

嘗試還是一樣的異常。 UIEvent對象_創建_是否使用單數或複數。 – prk 2011-04-19 08:41:50

+0

@Ashu我編輯了asnwer。 – vbence 2011-04-19 08:57:03

+0

我目前沒有設備來測試它。明天會測試和更新。 – prk 2011-04-19 09:46:53

5

變化:

evt.initTouchEvent('touchstart', true, true); 

到:

evt.initUIEvent('touchstart', true, true); 

工作對我來說,每晚鉻建立