[Diary/2011/July]

InfoWindowの中のボタンにListener登録 / 2011-07-15 (金)

今日

7:35学校着.途中搬出の様子を見に行くなどして9:40まで音出し.
その後JavaScript関係を調べながら実験.
10:30〜12:00,13:00〜14:30で授業.
その後17:00過ぎまでゼミ.
18:00学校発.
時間がないのにハマって,結局今日も殆ど進まない.

Google Maps APIのInfoWindowに表示する中身をjQueryのajax的に持ってきて,持ってきたhtmlの中のフォームにjQueryでEventListenerを登録したい場合,以下のようにする.
setTimeout無しではbtn1が無いといわれる.successに書いてるのになぜなんだ.
と考えたら,要するに本質的にはInfoWindow.open()に対するsuccessが必要なんだな,おそらく.
でもInfoWindowOptionsにはそれが無いので,こうやってsetTimeoutで時差を設定するしかないってことか.

$.ajax({
      url: http://**** ,
      success: function(data){
         infoWindow.setContent(data);
         infoWindow.open(map, marker);
         var tmpImerID = setTimeout(function(){
            clearTimeout(tmpTimerID);
            $(btn1).click(function(){  **** });
         }, 100);
      }
});
    

あとは,InfoWindowの中に設置したcanvasでProcessing.jsを動かすことが出来ればいいんだが……,これはiframeの中にcanvasを生成してonloadを設定すればいけそうな気がしてきたし,音を生成してロードする関数をiframeのattributeのonloadに書いてやればAudioオブジェクトもどうにかなるっぽい.
が,iframeのcreateElementを使った動的生成で,

document.createElement('iframe').contentDocument

が値を返さないので全く進まない.