老版本iphone设备在uni-app中div contenteditable属性设置true无法输入
老版本iphone设备在uni-app中div contenteditable属性设置true无法输入
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win11 | HBuilderX |
产品分类:uniapp/H5
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:win11
HBuilderX类型:正式
HBuilderX版本号:4.53
浏览器平台:Safari
浏览器版本:iphone7及以下
项目创建方式:HBuilderX
### 示例代码:
```html
<div class="inputbox" contenteditable="true" placeholder="请输入@人员" >
1
</div>
操作步骤:
创建实例项目 输入代码,打包,在iphone7 及以下手机进行测试,无法输入
预期结果:
可以输入
实际结果:
无法输入
bug描述:
contenteditable 属性设置为true的情况下,iphone 7P及以下机型,点击div,能拉取键盘无法获得焦点,输入不进去内容,实测,在普通的html文件中写div加这个属性,相同的手机是正常的,可以输入
更多关于老版本iphone设备在uni-app中div contenteditable属性设置true无法输入的实战教程也可以访问 https://www.itying.com/category-93-b0.html
把div改大写 试一下
更多关于老版本iphone设备在uni-app中div contenteditable属性设置true无法输入的实战教程也可以访问 https://www.itying.com/category-93-b0.html
发现问题了,uniapp有默认样式影响了,要给自己的div的这两个属性设置为 text 不要none body, html { / -webkit-user-select: none; / / user-select: none; / }
发现问题了,uniapp有默认样式影响了,要给自己的div的这两个属性设置为 text 不要none
body, html {
/ -webkit-user-select: none; /
/ user-select: none; /
}
针对老版本iPhone设备在uni-app中contenteditable属性失效的问题,以下是分析及解决方案:
问题原因:
- uni-app在旧版iOS设备上可能存在WebView兼容性问题
- 老版本Safari对contenteditable的支持存在差异
- uni-app的DOM处理方式与原生HTML不同
解决方案:
- 使用input或textarea替代(推荐):
<input class="inputbox" placeholder="请输入@人员" />
- 如必须使用contenteditable,尝试添加以下CSS:
.inputbox {
-webkit-user-select: text;
user-select: text;
min-height: 1em; /* 确保有可点击区域 */
}
- 添加focus事件处理:
focusHandler(e) {
e.currentTarget.focus();
}
- 检查manifest.json配置,确保使用了较新的WebView引擎:
"ios": {
"webView": "WKWebView"
}