2012-08-07 92 views
3

我正在创建一个PhoneGap应用程序。我不得不将焦点设置在页面加载一个textarea:document.getElementById('myControl')。focus()在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> 

。但它不适合我。任何人都可以帮我吗?

+0

是否'的getElementById()'返回元素的有效参考? – alex 2012-08-07 09:42:23

+0

http://stackoverflow.com/questions/5527639/how-can-i-focus-on-an-input-field-when-a-phonegap-page-loads – 2012-08-07 09:54:06

+1

发布相关的html请。 – 2012-08-07 09:57:21

回答

1

如果你想让键盘显示你会有很大的麻烦,导致焦点事件get的被激发的异步。我只有运气得到的键盘了用户输入的诸如touchstarttouchend & click

1

您指的是尚未加载到DOM的元素。为了这些目的,例如,jQuery有.ready() event。在HTML中的'myControl'元素下加载相同的脚本,看看它是否工作或使用jQuery来做到这一点。

JavaScript解决方案是这样的,当你,你指的是HTML元素,如后加载:

<textarea id="myControl"></textarea> 
    <script> 
     document.getElementById('myControl').focus(); 
    </script> 

使用jQuery它应该是这样的,你可以在任何地方加载到页面上:

$(document).ready(function() { 
    $('#myControl').focus(); 
}); 
15

随着iOS 6后,UIWebView类有一个名为“keyboardDisplayRequiresUserAction”属性。如果你想将它设置为false,您可以通过您的PhoneGap的config.xml访问:

<preference name="KeyboardDisplayRequiresUserAction" value="false" /> 

的默认值是true,这意味着程序集中的任何文字形式的元素是不会工作。

这里更多:http://community.phonegap.com/nitobi/topics/calling_focus

+0

工作很好。谢谢 – odle 2014-11-11 14:49:00

相关问题