私のmapsAppは、マップ上のマーカーにopenLayersポップアップを使用しています。ポップアップを作成するときは、リンクとCSSスピナーを事前に入力します。次に、非同期URLリクエストを起動します。
次に、スピナーを削除し、後でURLリクエストから受け取った情報を追加します。ポップアップのhtml部分(finalString)を参照する方法がわかりません。
これが私が持っているコードです。
function showPopUp (markerID,itemID) {
// **Tested** this creates a spinner and works with CSS
wxString = "<div class=\"spinner\" style=\"width: 34px; height: 34px\"><div class=\"bar1\"></div><div class=\"bar2\"></div><div class=\"bar3\"></div><div class=\"bar4\"></div><div class=\"bar5\"></div><div class=\"bar6\"></div><div class=\"bar7\"></div><div class=\"bar8\"></div><div class=\"bar9\"></div><div class=\"bar10\"></div><div class=\"bar11\"></div><div class=\"bar12\"></div></div>";
}
var markerString = "<a title=\""+itemID+"\" href=\"http://www.mywebsite.com/item/"+itemID+"\" target=\"_blank\">"+itemID+"</a>";
var finalString = markerString + "</br>"+ wxString;
popup = new OpenLayers.Popup.FramedCloud(icaoID,
markerID.lonlat,
new OpenLayers.Size(200, 200),
finalString,
null, true);
map.addPopup(popup);
getWX(itemID,popup); //asynch request that will remove the popup
}
getWx関数はXMLhttpリクエストを使用します
function getWX (item) {
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) { //If finished loading
return xmlhttp.responseText;
}
}
xmlhttp.open("GET","getwx.php?q=" + item,true);
xmlhttp.send();
}