相关疑难解决方法(0)

在启用触摸的浏览器上创建和触发触摸事件?

我试图在我的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]'不是函数.

有人可以指出我做错了什么吗?

javascript javascript-events

9
推荐指数
2
解决办法
2万
查看次数

模拟html5的触摸事件

我正在构建一个 html5 游戏,我想以编程方式将多点触摸事件发送到浏览器。

\n\n

我的想法是设置一个节点服务器并将事件转发到网页。是否有任何库已经做到了这一点或者我可以模拟此类事件?

\n\n

例如,this page启用了多点触控,但在桌面上您无法交互,因为只有鼠标。如果我可以模拟这些事件,那么我就可以与对象进行交互。我正在寻找这样的东西...任何指针都有帮助...

\n\n

我尝试使用::

\n\n
var e = document.createEvent(\'UIEvent\');\ne.initUIEvent(\'touchstart\', true, true);\ne.touches = [{pageX: x, pageY: y}];\n
Run Code Online (Sandbox Code Playgroud)\n\n

我对上述内容没有任何反应,然后我使用了这个

\n\n
var e = document.createEvent(\'TouchEvent\');\ne.touches = [{pageX: x, pageY: y}];\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我未处于移动模拟模式,则会收到错误消息,但当我转到移动模拟模式时,我没有得到任何响应

\n\n

我也尝试过::this但没有运气

\n\n

更新

\n\n

从这里

\n\n
var 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)

html javascript android multi-touch

5
推荐指数
1
解决办法
2万
查看次数