JT7*_*703 15 javascript html5 input microsoft-metro windows-8
编辑: 如果您尚未在Windows 8上开发,请不要尝试回答此问题.不要投票.甚至不读它.这不是Web应用程序或网站,也不在浏览器中运行.请停止对您不理解的内容进行投票.这是一个在Windows运行时环境中运行的Windows 8 METRO HTML5/js应用程序.
原始问题:
我希望光标在输入框中"闪烁",准备好接收输入.我正在使用javascript来设置焦点.这不起作用:
document.querySelector("#input-box").focus();
Run Code Online (Sandbox Code Playgroud)
谁知道为什么?焦点方法不适合用于此吗?
谢谢.
编辑#2:所以它肯定与我试图将焦点设置为ListView的"itemInvoked"事件的输入这一事实有关.事件正常触发,可以从事件处理程序访问该元素,并且该行在执行时没有错误.我可以通过标准按钮单击事件将焦点设置为我的输入标记,但不能从ItemInvoked事件设置焦点.所以问题是,为什么我不能在这个事件处理程序中设置焦点?
我创建了这个只有一个文本框的小测试项目,在onload中设置焦点的方式和你完全一样.我在模拟器和我的本地机器上都尝试过这两种方法似乎都有效.
如果这个项目在你的机器上适合你,你能试试吗?您是否可以在尝试设定焦点时更深入地了解我们?现在在您的问题中,没有太多关于它何时发生的信息.
您可以在此处下载示例http://www.playingwith.net/Temp/TestFocusApplication.zip
更新
好吧,似乎发现它,如果你用msSetImmediate函数调用函数将焦点设置到文本框似乎工作.我没有上传测试示例的选项,因此您可以在下面找到我附加ItemInvoked处理程序并调用setFocus函数的代码.
var listView = document.getElementById("basicListView");
listView.winControl.addEventListener("iteminvoked", function (evt) {
if (listView.winControl.selection.count() > 0) {
msSetImmediate(setFocus);
}
});
function setFocus() {
//Set focus on input textbox;
var input = document.querySelector("#input-box")
input.focus();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14852 次 |
| 最近记录: |