我试图在我的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);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码抛出异常'TypeError:表达式的结果'evt.initTouchEvent [undefined]'不是函数.
有人可以指出我做错了什么吗?
我正在构建一个 html5 游戏,我想以编程方式将多点触摸事件发送到浏览器。
\n\n我的想法是设置一个节点服务器并将事件转发到网页。是否有任何库已经做到了这一点或者我可以模拟此类事件?
\n\n例如,this page启用了多点触控,但在桌面上您无法交互,因为只有鼠标。如果我可以模拟这些事件,那么我就可以与对象进行交互。我正在寻找这样的东西...任何指针都有帮助...
我尝试使用::
\n\nvar e = document.createEvent(\'UIEvent\');\ne.initUIEvent(\'touchstart\', true, true);\ne.touches = [{pageX: x, pageY: y}];\nRun Code Online (Sandbox Code Playgroud)\n\n我对上述内容没有任何反应,然后我使用了这个
\n\nvar e = document.createEvent(\'TouchEvent\');\ne.touches = [{pageX: x, pageY: y}];\nRun Code Online (Sandbox Code Playgroud)\n\n如果我未处于移动模拟模式,则会收到错误消息,但当我转到移动模拟模式时,我没有得到任何响应
\n\n我也尝试过::this但没有运气
更新
\n\n\n\nvar type = \'move\'; // or start, end\nvar event = document.createEvent(\'TouchEvent\');\nevent.initEvent(\'touch\' + type, true, true); \nevent.constructor.name; // Event (not TouchEvent)\n\nvar point = {x: 10, y: 10 };\nevent.touches = [{\n identifier: Date.now() + i,\n …Run Code Online (Sandbox Code Playgroud)