我正在创建一个PhoneGap应用程序。我必须在页面加载的文本区域上设置焦点:
我用过
<body onload="newNoteOnLoad();">
<div class="container">
<div class="header">
<h1 id="noteHeader">
New Note</h1>
<a href="Books.html" class="back" id="back"></a><a href="#" class="done" id="bttnDone" onclick="addNewNote();">
</a>
</div>
<div class="mainhelp">
<p>
<textarea id="txtNote" cols="115" rows="15"></textarea>
</p>
</div>
</div>
<script type="text/javascript">
alert('focus');
document.getElementById("txtNote").focus();
</script>
在页面加载函数中。但这对我不起作用。谁能帮我?
从iOS 6开始,UIWebView类具有一个名为"keyboardDisplayRequiresUserAction"的属性。如果要将其设置为 false,可以通过 phonegap 配置访问它.xml:
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
默认值为 true,这意味着以编程方式聚焦任何文本表单元素都不起作用。
更多在这里: http://community.phonegap.com/nitobi/topics/calling_focus
如果你想让键盘显示你会遇到很大的麻烦,导致焦点事件异步触发。我只是运气好地在用户输入上打开键盘,例如touchstart
,touchend
和click
你指的是尚未加载到 DOM 的元素。例如,出于这些目的,jQuery具有.ready()
事件。在HTML中的"myControl"元素下加载相同的脚本,看看它是否有效或使用jQuery来执行此操作。
JavaScript 解决方案的工作方式是这样的,当你在你引用的 HTML 元素之后加载它时,例如:
<textarea id="myControl"></textarea>
<script>
document.getElementById('myControl').focus();
</script>
使用jQuery,它看起来像这样,你可以把它加载到页面上的任何位置:
$(document).ready(function() {
$('#myControl').focus();
});