今日
色々あって4:00起床.プログラミングの続き.
8:30学校着.すぐプログラミングの続き.一つ目の問題解決.まさかこんなんだとは.
午後一で嫌な話を聞く.何でそうなってる.
12:00〜13:00 時差ボケと睡眠不足による仮眠.
13:00〜15:00 研究室ミーティング.
強烈な目眩で横になったが目が覚めたら3時間経ってしまっていて,20:00学校発.
GoogleMaps APIのInfoWindowの中にiframeを作ってやって,その中に書き込む方法.
どうやっても出来ないできないとずっと悩んでいたが……解決法はsetTimeoutで時間を空けてやるというマジで最悪な方法であった.
var iframe = document.createElement('IFRAME'); iframe.setAttribute("frameBorder", "1"); iframe.setAttribute("scrolling", "yes"); iframe.setAttribute("name", "iframe1"); iframe.style.width = "200px"; iframe.style.height = "200px"; iframe.src = "about:blank"; infoWindow.setContent(iframe); //Google Maps APIのinfoWindowのインスタンスにセット infoWindow.open(map, marker); var timerID = setTimeout(function(){ var iframedoc = iframe.contentDocument; iframedoc.writeln(""); iframedoc.body.innerHTML = 'コンテンツの中身'; }, 100);
つまり一度openしてからsetTimeoutしないとcontentDocumentにはアクセス不可ということ.
そういやListenerもそうやってた……なんでこんなクソ仕様なんだ.
だからここに配置したボタンにListenerを登録するときは,更にsetTimeoutでListenerを登録する関数をネストしなきゃいけない……ってことだよな.
なんてこった.