1

基本的に巨大なフルスクリーンの Google マップのページがあります。どのタイプのフォーカス機能も機能しません。理由はありますか?コードはかなり長いので、ここに URL といくつかの抜粋を示します。

ページの読み込み後に位置検索入力ボックスにフォーカスを移したい作業中のページ: http://api.raprec.com/maps/frame/

フォームフィールド(何もしなかったhtml5フォーカス属性も試したことに注意してください:

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

Googleマップのドキュメントで提案されているように、「フォームをマップに移動する」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 に答える