1

我有一个页面,基本上是一个巨大的全屏谷歌地图。我无法让任何类型的焦点功能工作。任何想法为什么?代码很长,所以这里是 URL,然后是一些摘录:

我们正在处理的页面,我们希望位置搜索输入框在页面加载后成为焦点:http: //api.raprec.com/maps/frame/

表单字段(注意我也尝试了 html5 focus 属性,它什么也没做:

<input type="text" name="location" id="location" value="" TABINDEX=1 autofocus />

谷歌地图文档中建议的“将表单移动到地图中”的 javascript 行:

map.controls[google.maps.ControlPosition.TOP_RIGHT].push(document.getElementById('sidepanel'));

页面页脚中的javascript:

jQuery(document).ready(function () {jQuery('#location').focus(); });

4

2 回答 2

1

元素只有在可见时才会被聚焦。

您的尝试有效,但来得太早了,因为当元素移动到它的控制位置时,它会失去焦点。您需要在元素已经放置到地图上时设置焦点。由于没有事件可以查明它何时发生(我不建议在此处使用 DOMNodeInserted),因此在设置焦点之前需要延迟。

等待tilesloaded-event 似乎就足够了:

google.maps.event
 .addListenerOnce(map,'tilesloaded',function(){jQuery('#location').focus()});
于 2013-08-02T22:44:29.683 回答
0

html5自动对焦属性怎么样?

http://www.w3schools.com/tags/att_input_autofocus.asp

<input type="text" autofocus>
于 2013-08-02T20:38:33.587 回答