1
如何模擬只傳遞X,Y座標的DIV上的onclick事件???DOM initMouseEvent clientX,clientY
如果我試圖做出這一點,顯然dispatchEvent函數想要在其上引發該事件的對象 ......但那麼傳遞事件創建時的意義 的座標是多少?
感謝
如何模擬只傳遞X,Y座標的DIV上的onclick事件???DOM initMouseEvent clientX,clientY
如果我試圖做出這一點,顯然dispatchEvent函數想要在其上引發該事件的對象 ......但那麼傳遞事件創建時的意義 的座標是多少?
感謝
的clientX和clientY參數是相對於元素處理事件位置,所以你需要知道什麼元素click事件將要。
如果要基於窗口座標模擬對未知元素的點擊,則需要在該位置找到元素。在IE和Firefox 3中,您可以使用document.elementFromPoint(x, y)
。我不知道在其他瀏覽器中的任何方式,除了循環瀏覽頁面中的元素,查看它們的位置/大小以確定座標處的內容。
您的代碼看起來有點像這樣:
function simulateClick(x, y) {
var el = getElementFromPoint(x, y);
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
1, 0, 0,
calculateClientX(el, x), calculateClientY(el, y),
false, false, false, false, 0, null);
el.dispatchEvent(evt);
}
getElementFromPoint
將使用兩種document.elementFromPoint
或遍歷所有元素。 calculateClientX/Y
會計算相對於元素的點擊座標。
很好,它工作得很好。非常感謝你!!!! – xdevel2000 2009-02-26 08:23:50