我正在创建一个PhoneGap应用。我必须在页面加载上将焦点设置在textarea上:
我用过
<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>
页面加载功能
。但它对我不起作用。有人可以帮帮我吗?
答案 0 :(得分:15)
从iOS 6开始,UIWebView类有一个名为“keyboardDisplayRequiresUserAction”的属性。如果要将其设置为false,可以通过phonegap config.xml访问它:
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
默认值为true,这意味着以编程方式聚焦任何文本表单元素都不起作用。
更多信息:http://community.phonegap.com/nitobi/topics/calling_focus
答案 1 :(得分:1)
您指的是尚未加载到DOM的元素。出于这些目的,jQuery例如具有.ready()
event。在HTML中的'myControl'元素下加载相同的脚本,看看它是否有效或使用jQuery来执行此操作。
当您在引用的HTML元素之后加载JavaScript解决方案时,JavaScript解决方案就像这样工作,例如:
<textarea id="myControl"></textarea>
<script>
document.getElementById('myControl').focus();
</script>
使用jQuery看起来像这样,你可以将它加载到页面的任何地方:
$(document).ready(function() {
$('#myControl').focus();
});
答案 2 :(得分:1)
如果您希望键盘显示您将遇到大麻烦导致焦点事件被触发异步。我很幸运能够通过用户输入获取键盘,例如touchstart
,touchend
&amp; click