编辑: 如果你没有在Windows 8上进行开发,请勿尝试回答此问题。不要投票,也不要阅读。这不是一个Web应用程序或网站,也不在浏览器中运行。请停止对你不理解的内容进行负面评价。这是一个在Windows Runtime环境中运行的Windows 8 METRO HTML5/js应用程序。
原始问题:
我想让输入框中的光标“闪烁”,准备接收输入。我正在使用javascript来设置焦点。但这并不起作用:
document.querySelector("#input-box").focus();
有人知道为什么吗?难道使用焦点方法不是正确的方式吗?
谢谢。
编辑 #2: 所以这肯定与我试图从 ListView 的 "itemInvoked" 事件中设置输入的焦点有关。该事件正常触发,元素可以从事件处理程序中访问,并且该行在执行时没有错误。我可以从标准按钮单击事件设置焦点到我的输入标记,但无法从 ItemInvoked 事件设置焦点。所以问题是,为什么我不能从此事件处理程序内设置焦点?
document.querySelector("#input-box").focus();
。#2:如果#1失败,请尝试调用document.querySelector("#input-box").select();document.querySelector("#input-box").focus();
。#3:如果#2失败,请将焦点放在超时内setTimeout(function(){ document.querySelector("#input-box").focus(); }, 100);
。我知道这是WinRT,但我只是涵盖了一些在IE9上发生的focus()错误。测试不会有任何损失,对吧? - RaphaelDDL