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