【发布时间】:2016-06-20 19:32:52
【问题描述】:
当应用程序以触摸模式(平板电脑设备/模拟器)运行时,Windows 虚拟键盘未显示,我在输入时手动触发 focus()。相反,当点击身体上的任何地方时,键盘会显示(这意味着输入是集中的)。使用鼠标输入(而不是触摸)将应用程序作为常规桌面应用程序运行时悬停 - 一切正常。
所以问题是如何避免这种行为,或者至少如何在输入聚焦时手动显示虚拟键盘?
我正在使用WinJS.4.0 4.0.0.winjs.2015.6.9。
复制问题的示例代码:
default.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>App1</title>
<!-- WinJS references -->
<link href="WinJS/css/ui-dark.css" rel="stylesheet" />
<script src="WinJS/js/base.js"></script>
<script src="WinJS/js/ui.js"></script>
<!-- App1 references -->
<link href="/css/default.css" rel="stylesheet" />
</head>
<body class="win-type-body">
<div id="container">
<div id="text-holder">
Input value will be displayed here
</div>
<div id="input-holder">
<form id="form">
<input id="input" value="" type="number"></input>
</form>
</div>
</div>
<script src="/js/default.js"></script>
</body>
</html>
default.js
(function () {
var input = document.getElementById('input');
var form = document.getElementById('form');
var textHolder = document.getElementById('text-holder');
form.addEventListener('submit', function (e) {
e && e.preventDefault();
textHolder.innerText = input.value;
input.value = "";
input.blur();
});
textHolder.addEventListener('click', function (e) {
console.log(e);
input.focus();
});
})();
default.css:
body {
background-color: #fff;
}
#container {
width: 100%;
height: 100%;
}
#text-holder {
width: 200px;
height: 50px;
background-color: #191A15;
color: #fff;
}
视觉引导:
Step 1:
Step 2:
感谢您的关注,希望这个问题可以解决。
【问题讨论】:
标签: javascript windows win-universal-app winjs windows-10-universal