我有个问题我解决不了。
***input.focus()***上的键盘未显示在IOS上
searchMobileToggle.addEventListener('click', function() {
setTimeout(function(){
searchField.focus();
}, 300);
});
我一直在寻找一个解决方案,但没有结果。我知道这是一个经常无法解决的问题,但我看到NIKE(https://m.nike.com/fr/fr_fr/)和FOODSPRING(https://www.foodspring.fr/)在移动的上这样做。
所以我想知道他们是怎么做的?
6条答案
按热度按时间v440hwme1#
其他的答案对我都不起作用。最后我查看了Nike javascript代码,这是我想到的一个可重用函数:
请注意,这绝对是一个黑客的解决方案,但事实上,苹果还没有解决这个问题这么长时间证明它。
yqhsw0fo2#
我找到了一个解决办法,
click()
不起作用,但我找到了。我正在处理vue.js,它在加载组件时删除了input
autofocus
属性,所以我点击了它,但还有另一个问题,自动聚焦只工作了一次,但结合了focus(),它现在一直工作:)谢谢你的帮助!
nzkunb0c3#
这真的让我/我们抓狂。它在Android手机上运行得很好,但是苹果的开发者禁用了一些东西。(我知道在不必要的时候弹出键盘是很烦人的)。
我无意中发现Semantic-UI的“popup”模块神奇地修复了这个问题。
请注意,此解决方案适用于SemanticUI(@semantic-ui团队可能会告诉您是什么事件使此解决方案起作用)
以下是我的做法:
如您所见,我用Popup模块 Package 了trigger Icon,并通过设置疯狂的偏移量隐藏了Popup内容。然后它神奇地工作了。
请在此处观看演示:https://swimstandards.com/(在iPhone上查看)
7gcisfzg4#
Angular 解决方案:
在单击按钮时,我们需要创建临时输入,附加到现有容器(靠近我们输入)并关注它。
显示模态/目标输入后,我们移动焦点并移除临时输入:
和模板:
您只需要记住,iPhone可能会缩放屏幕,因此您需要调整临时输入的参数。
工作溶液:https://inputfocus.vercel.app/
lstz6jyr5#
在2022年与ios 16工作!天哪,我找了这么长时间,上面的解决方案不会为我工作.
下面是它的工作原理。我将输入封装在一个React FocusLock组件中。查看这个包:https://www.npmjs.com/package/react-focus-lock
下面是一个小例子:
ngynwnxp6#
没有 * 合法 * 的方式来做到这一点,因为iOS只想在用户交互时打开键盘,但是你仍然可以通过使用
prompt()
或在click()
事件中使用focus()
来实现这一点,它会出现。