虽然此代码在触摸屏幕时产生预期的"1"行为:
document.getElementById('someNodeId').addEventListener('touchmove', touch, true);
function touch(evt) {
evt.preventDefault();
alert(evt.changedTouches.length);
}
Run Code Online (Sandbox Code Playgroud)
使用jQuery选择器的相同代码:
$('#someNodeId').bind('touchmove', touch);
Run Code Online (Sandbox Code Playgroud)
产生错误:"TypeError:表达式结果'evt.changedTouches'[undefined]不是对象".
(Device = iPod Touch OS 3.1.3(7E18); jQuery 1.4.2).
这怎么可能,我做错了什么?
我正试图在iframe中嵌入HTML5游戏,以便在iPad和iPhone等移动设备上的浏览器中显示.
如果您直接在iPad上访问它们,它们可以正常工作.
但是如果你使用iframe嵌入它们,那么当你触摸游戏然后放手时,游戏就会暂停.
有没有办法阻止这种iframe行为,以便他们按照自己的意愿行事?
当你停止触摸并且它认为你的空置和停顿时,似乎可能会失去焦点?
例
在模拟器中尝试下面的两个示例链接,您将看到问题
iPhone/iPad模拟器:https://app.io/safari
直接游戏链接(游戏作品):http://static.tresensa.com/madcab/index.html?dr = A0000
嵌入式游戏链接(游戏不起作用):http://drttrd.com/testIframe.php
我正在使用的代码(基本)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Game</title>
</head>
<body>
<div>
<iframe src="http://static.tresensa.com/madcab/index.html?dst=A0000" frameborder="0" scrolling="no" width="960" height="536"></iframe>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我试过的
css样式以更改交互类型
<div style="overflow:auto;-webkit-overflow-scrolling:touch;">
<iframe src="" height="" height=""></iframe>
</div>
Run Code Online (Sandbox Code Playgroud)
JS防止默认
<script>
document.ontouchmove = function(e) {
e.preventDefault();
};
</script>
Run Code Online (Sandbox Code Playgroud)
......都没有帮助