我想知道是否可以检测浏览器是否在iOS上运行,类似于使用Modernizr进行特征检测的方式(尽管这显然是设备检测而不是功能检测).
通常我更喜欢功能检测,但我需要找出一个设备是否是iOS,因为他们根据这个问题处理视频的方式YouTube API无法使用iPad/iPhone /非Flash设备
有没有办法强制数字键盘出现在手机上<input type="text">?我刚刚意识到<input type="number">在HTML5中是针对"浮点数",因此它不适用于信用卡号,邮政编码等.
我想模拟数字键盘功能<input type="number">,对于采用浮点数以外的数值的输入.也许还有另一种合适的input类型吗?
这可能是一个愚蠢的问题,但我想使用Modernizr JS库来检测某些浏览器属性,以确定要显示或不显示的内容.
我有一个名为Pano2VR的应用程序,它输出HTML5和SWF.我需要HTML5 for iOS设备用户.
但是,IE根本不会呈现此"HTML5"输出.似乎他们的输出使用CSS3 3D变换和WebGL,IE9中显然不支持一个或多个.
因此,对于那些用户,我需要显示Flash版本.我打算使用IFRAME并通过Modernizr脚本传递SRC或document.write出正确的IFRAME代码,具体取决于浏览器.
所有这些都导致我如何使用Modernizr来检测IE或IE?或者检测CSS 3d变换?
或者还有另一种方法吗?
在使用自定义模式作为输入类型时,是否有可能强制iOS设备显示数字键盘?
我的输入模式:
<input id="price" class="numeric" pattern="\d+((\.|,)\d{1,2})?" name="price"
title="" data-mini="true" data-clear-btn="true" autocomplete="off" autofocus />
Run Code Online (Sandbox Code Playgroud)
我想键入一个类似'14 .99'的货币值,并在iOS设备上显示一个可以访问数字的键盘
<input type='number' />
<input pattern='[0-9]*' />
<input pattern='[\d]*' />
Run Code Online (Sandbox Code Playgroud)
在添加小数符号时都缺少小数符号和/或没有作为数字验证.另一种方法可能是在正确的位置创建小数点的javascript函数,例如按此顺序按1-> 2-> 9-> 9创建on keypress()0.01-> 0.12-> 1.29-> 12.99,但这需要输入字段type='text'- >显而易见的问题是在聚焦输入字段时显示文本键盘.
我该如何解决这个问题?
环境:
请注意,使用input type="number"可以显示如下数字键盘:

是否可以用来input type="text"显示相同的数字键盘?我并不想用显示的数字键盘pattern="\d*",因为它是可能的值将包含一个小数位.
我想用的原因input type="text",而不是input type="number"是,我不能回来的价值,如果我输入一个数场非数字.例如,如果我输入ABC,它将自动变为空.在我看来,使用input type="text"这种控制会更容易.
我一直在阅读许多其他问题,例如[1] [2] [3],但问题仍然存在.
我需要找到"最干净"的方式来input获得移动设备的HTML 并尊重所有这三个规则:
我一直在讨论这些解决方案,这两个主题都没有累积地尊重上述三条规则.
<input type="text" pattern="\d*" />
Run Code Online (Sandbox Code Playgroud)
此解决方案尽管在iOS中工作并且完成了由w3验证器测试的HTML规则,但在Chrome Android中提供了带有QWERTY键盘的完整键盘.
<input type="number" pattern="\d*" />
Run Code Online (Sandbox Code Playgroud)
此解决方案适用于iOS和Android Chrome系统,显示两个系统上的数字键盘,但它会抛出HTML验证错误
仅当输入类型为电子邮件,密码,搜索,电话,文本或URL时,才允许使用属性模式.
<input type="number" />
Run Code Online (Sandbox Code Playgroud)
此解决方案通过HTML测试,在Chrome上显示不错,但在iOS键盘上显示了几个不需要的密钥
我看到许多开发人员使用此解决方案
<input type="tel" />
Run Code Online (Sandbox Code Playgroud)
但是经过Android Chrome测试,它不允许使用点符号(.),并且键有字母,这是多余的.
html-input mobile-safari numeric-keypad android-keypad iphone-keypad
知道两者都被用作移动浏览器的提示,我找不到关于 using<input type="tel">和之间的区别的真正文档<input inputmode="tel">。所以
MDN文档建议使用该类型。但目前还不清楚解释。