编程语言
首页 > 编程语言> > javascript-无法在iOS 9上使用fastclick输入textarea

javascript-无法在iOS 9上使用fastclick输入textarea

作者:互联网

最近几天,我一直在寻找解决方案,但是所有可行的方法(根据文档)都不起作用.

我正在使用fastclick消除旨在在iPad上运行的HTML5应用程序的300ms延迟.一切都很好,除了我失去了将文本键入文本区域的功能.简单的单行字段有效,但多行文本区域无效.

当我点击文本区域时,键盘弹出,我可以开始键入了.输入的第一个字母出现在文本区域中-仅此而已.随后的字母不.如果关闭键盘并再次点击文本区域,则可以输入另一个字母.

我已经尝试了所有建议的内容,包括needsclick,needsfocus等.我尝试编辑fastclick.js来扩展用于处理输入元素的特殊代码,使其也覆盖textarea-什么都没有.

我可能正因为这个原因而不得不放弃fastclick并自己手动执行所有操作,因为我已经在这个问题上损失了将近一周的时间.然而,在我走之前,也许有人可以指出我正确的方向.

请注意,该问题存在于装有iOS 9.2(特别是最新版本9.2.1)的iPad和iPhone上.

解决方法:

好的,原因很简单-与fastclick无关.实际上是this answer为我解决了它.

在我的CSS中,我有以下内容:

body * {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}

body input {
    -webkit-touch-callout: text;
    -webkit-user-select: text;
    user-select: text;
}

这样做是为了与愚蠢的用户打交道,他们会先在按钮上“ touchstart”,然后开始思考他们想要的东西,然后在“ touchend”之前,ios将进入复制/粘贴模式.

然后在输入中将其明确禁用,以允许在文本中进行复制/粘贴.但是,我忘了在第二部分中包含文本区域.现在,第二部分如下所示:

body input, body textarea {
    -webkit-touch-callout: text;
    -webkit-user-select: text;
    user-select: text;
}

一切都按预期进行.

标签:ipad,ios,html,javascript,fastclick
来源: https://codeday.me/bug/20191119/2033604.html