iPhone 上的移动 Safari 允许您为文本输入框指定不同的键盘类型,如iPhone 的 Safari How-To 中所示,此处。但是,我想知道是否可以更改显示 Javascript prompt() 对话框时显示的键盘类型。
我知道如果必须,我可以滚动自己的模式弹出窗口,但我想知道是否可以将内置的 prompt() 函数与不同的键盘(在我的情况下为数字)一起使用。
iPhone 上的移动 Safari 允许您为文本输入框指定不同的键盘类型,如iPhone 的 Safari How-To 中所示,此处。但是,我想知道是否可以更改显示 Javascript prompt() 对话框时显示的键盘类型。
我知道如果必须,我可以滚动自己的模式弹出窗口,但我想知道是否可以将内置的 prompt() 函数与不同的键盘(在我的情况下为数字)一起使用。
不幸的是,我很确定答案是“不”。考虑以下实验:
<html>
<head>
<script type="text/javascript">
function doit() {
prompt("this is a test");
}
</script>
</head>
<body>
<a href="javascript:doit();">Click me</a>
</body>
</html>
如果您将其放入 HTML 页面并将其加载到 Mobile Safari 中,然后将您的手机变成横向视图,然后单击链接,您期望会发生什么?您期望发生的是使用宽键盘以横向显示提示对话框。实际发生的是,Mobile Safari 旋转回纵向视图并弹出小键盘,然后在您输入文本后旋转回来。(为了好玩,提醒结果,提醒也会旋转显示...)请注意,HTML 5 自定义(type="tel" 或 pattern="[0-9]*")在适当的时候会正确弹出横向键盘。
请注意,这并不是您无法自定义键盘外观的先验证据,但它是一个非常有力的指标,表明 javascript 提示行为是固定的,并且没有很好地集成到用户体验的其余部分中。