使用 ios 10 Safari 浏览器在 ionic 中无法使用 Focus()

Posted

技术标签:

【中文标题】使用 ios 10 Safari 浏览器在 ionic 中无法使用 Focus()【英文标题】:Focus() is not working in ionic using ios 10 safari browser 【发布时间】:2017-03-24 10:36:01 【问题描述】:

focus() 在使用 ios 10 safari browser 时无法在 ionic 中工作。

当你使用 chrome emulator 时它有效,但在使用 ios 10 safari browser 时无效。

下面是我用来聚焦元素的代码。

var rvMobileApp = angular.module('rvMobileApp.shared.directive');
rvMobileApp.directive('rvSetFocus', function ($timeout) 
   return 
           link: function (scope, element, attrs) 

           $timeout(function () 
               element[0].focus();
           , 100);
        
;

提前谢谢..

【问题讨论】:

你有什么错误吗? 其他浏览器呢?你有没有检查过? element[0]是什么类型的元素? 它是一个输入元素(文本框)。 我已经在桌面浏览器中检查过这可以工作,但是当我在手机(IOS 10 Safari)中打开它时,它不会聚焦输入元素。 【参考方案1】:

默认情况下,iOS 不允许任何键盘交互,除非点击输入字段。

要覆盖它,你需要把它放在你的 config.xml 中:

<preference name="KeyboardDisplayRequiresUserAction" value="false" />

【讨论】:

我们没有使用cordova,所以我们不能使用这个解决方案。

以上是关于使用 ios 10 Safari 浏览器在 ionic 中无法使用 Focus()的主要内容,如果未能解决你的问题,请参考以下文章

你的Safari浏览器被“锁”了吗?千万别付赎金,升级iOS 10.3即可

使用safari对webview进行调试

在 Safari、iOS 上使用 History API 后,警报、确认和提示不起作用

Appium+python自动化16-启动ios上Safari浏览器

IOS:Safari不兼容Javascript中的Date问题

删除ios safari浏览器的网站数据