大佬教程收集整理的这篇文章主要介绍了event.preventDefault() 在 iOS 14 及更高版本中表现不同,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 JavaScript 在 iPad 应用程序中的 WKWebVIEw 中执行操作,该应用程序加载一些本地生成的 HTMLString(比如书中的一个页面作为文本)。像选择一个词这样的用户交互是使用 JavaScript 处理的,如下函数。
WKWebVIEw 还添加了平移手势,以在用户在不同方向上平移每个单词时执行动作(不同角度的不同动作)。
以下代码适用于 以下 iOS 14 版本。但在 iOS 14 以上版本中无法正确调用平移手势(未注册计算角度所需的最小点以执行操作) .
function highlightSELEctedStart(event) { //ontouchstart
var clickedobject=elementFromdocumentPoint(event.touches[0].screenX,event.touches[0].screenY);
var TagID = clickedobject.ID;
firstNode = clickedobject;
SELEctClass.classname = 'noSELEct';
prevIoUsTagID = TagID;
deSELEctAllHighlightedElement();
if (window.getSELEction)
window.getSELEction().removeAllRanges();
else if (document.SELEction)
document.SELEction.empty();
window.LOCATIOn = "dIDwordSELEcted:"+TagID;
event.preventDefault(); //<== *This here behaves differently in iOS 14*
}
function highlightSELEctedMove (event) { //ontouchmove
event.preventDefault();
var clickedobject=elementFromdocumentPoint(event.changedtouches[0].screenX,event.changedtouches[0].screenY);
if (findposy(firstNodE) == findposy(clickedobject)) {
clickedobject = clickedobject.childNodes[0];
var TagID = clickedobject.parentNode.ID;
lastNode = clickedobject.parentNode;
SELEctAndHighlightElement(tagID);
window.LOCATIOn = "dIDwordSELEcted:"+TagID;
}
}
如果从 touchstart 函数中删除 event.preventDefault(),平移动作在所有 iOS 版本中都可以正常工作,但是 touchstart 函数执行被延迟(我猜它是在等待双击) .
如果有人能告诉我为什么 iOS 14 或更高版本的行为不同,我将不胜感激。
提前致谢。
对于偶然发现相同问题的人。
所有问题都是因为双击缩放的点击延迟,据说当视口更改为下面的代码段时,点击延迟会被禁用。
无论我做什么,WKWebView 在框架外滚动显示其内容都不尊重下面给出的视口
<meta name='viewport' content='width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no'>
这会禁用双击缩放,但当用户点击单词时,点击延迟仍然存在。
感谢来自 ftlabs 的 script,它消除了点击延迟,从而使我免于使用 event.preventDefault()
以上是大佬教程为你收集整理的event.preventDefault() 在 iOS 14 及更高版本中表现不同全部内容,希望文章能够帮你解决event.preventDefault() 在 iOS 14 及更高版本中表现不同所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。