openInfoWindowHtml()の後にタイムラグ?

ブログ | 2008/8/18 20:24
どうもマッピングがうまくいかない報告がちらほら。
僕は、吹き出しの中のフォームからマッピングする方式を採用しているのだけれど、
marker.openInfoWindowHtml('<form name="mfrm"><input type="text" name="lat" /><input type="text" name="lng" /></form>');
var point = marker.getPoint();
var f = document.mfrm;
f.lat.value = point.y;
f.lng.value = point.x;
こんな感じだったとして、うまくフィールドに値が入らない。
吹き出しが開くタイミングにワンクッション入るためか、document.mfrmがないのだ。(7月中旬まで問題なく動いてたけど)

で、最初の対処はsetTimeoutを使って、
marker.openInfoWindowHtml('<form name="mfrm"><input type="text" name="lat" /><input type="text" name="lng" /></form>');
setTimeout(function(){
  var f = document.mfrm;
  if(f){
    var point = marker.getPoint();
    f.lat.value = point.y;
    f.lng.value = point.x;
  }
},300)

んが、300ミリ秒みたいな強制タイムラグでは、だめなケースがあるようだ(遅いマシンとか)。で、
marker.openInfoWindowHtml('<form name="mfrm"><input type="text" name="lat" /><input type="text" name="lng" /></form>');
var int = setInterval(function(){
  var f = document.mfrm;
  if(f){
    var point = marker.getPoint();
    f.lat.value = point.y;
    f.lng.value = point.x;
    clearInterval(int);
  }
},200)

こうしてみた。どうだろう。様子見中。
▼追記 2008/8/18 20:48
このエントリー、IEでサイドバーが落ちる。
タグ »
縮小 拡大

ログインしておくと、後で編集が可能です。

Rottel内コンテンツ

コメント
ツイッカー
アンケート
アーカイブ
デイリーRottel
ブログ
写真
フィードバック
ブックマーク
マップ
タグ
手当たり次第

ユーザー一覧

Rottelとは?
利用規約
開発飲料
利用者の声
ヘルプ
close