GoogleデスクトップでAjaxを使う場合は、普段と勝手が少し違うみたいだ。
シンプルなAjaxの書き方は以下なかんじ
var httpObj; function loadTextFile() { httpObj = new XMLHttpRequest(); httpObj.onload = displayData; httpObj.open("GET","data.txt",true); httpObj.send(null); } function displayData() { document.ajaxForm.result.value = httpObj.responseText; }
非同期通信だから、読み込み終わってから処理をしましょうってことですね。
ただしGoogleデスクトップではonloadが使えません。クマった。
というわけで、onreadystatechangeを使います。
onreadystatechangeとは、readyStateプロパティの値が変化するたびに呼び出される関数で、readyStateプロパティはサーバからデータを受信するたびに値の更新が行われるプロパティの値。
readyStateプロパティの値が「4」の状態で通信完了。statusプロパティが「200」なら正常完了。「404」がエラーだった気がする。
詳しくはこちら
http://www.ajaxtower.jp/ini/http/index2.html
というわけで、GoogleデスクトップでAjaxしたいときは以下な感じでよろぴくみー。
function loadData() { httpObj = new XMLHttpRequest(); httpObj.onreadystatechange = displayData; httpObj.open("GET",url,true); httpObj.send(null); } function displayData() { if(httpObj.readyState == 4){ if(httpObj.status == 200){ //処理 } } }
しかし実機をいじれないシンバシはLEAFBANKのデータを取得することができないのでした。まぁ、正規表現でnon_flash版から値を取得すればいいんだけども、そこはまたそのうち。
明日やろうは馬鹿野郎ということです。