외부 XML 파일에서 정보를로드하고이를 클릭하면 HTML 페이지에 삽입하는 스크립트가 있습니다. 여기정적 ID를 변수로 대체 할 때의 문제
var xmlhttp;
function loadXMLDoc(url,target) {
xmlhttp = null;
if (window.XMLHttpRequest) { // code for all new browsers
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // code for IE5 and IE6
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp != null) {
xmlhttp.onreadystatechange = state_Change;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
else {
alert("Your browser does not support XMLHTTP.");
}
}
function state_Change() {
if (xmlhttp.readyState == 4) { // 4 = "loaded"
if (xmlhttp.status == 200) { // 200 = OK
var markers = xmlhttp.responseXML.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getElementsByTagName("name")[0].firstChild.nodeValue;
//etc...
document.getElementById(target).innerHTML += '<li>' + name + '</li>\n';
}
}
else {
alert("Problem retrieving XML data");
}
}
}
되는 HTML 것 : 다음은이 스크립트의 코드입니다
<ul id="list_puncts">
<li><a href="javascript:;" onclick="loadXMLDoc('./content/geo_points/slovenia.xml','list_sl')">Republika Slovenija (RS)</a>
<ul id="list_sl">
<!--here should be some info from XML file-->
</ul></li>
<li><a href="javascript:;" onclick="loadXMLDoc('./content/geo_points/horvatia.xml','list_hr')">Republika Hrvatska (RH)</a>
<ul id="list_hr">
<!--here should be some info from XML file-->
</ul></li>
</ul>
그러나, 그것은 작동하지 않습니다 - 링크를 클릭 한 후, XML로드 (이 방화범에서 볼 수있다)됩니다, 두 번째 변수 인 target
은 state_Change
함수로 들어갈 수 없으므로 실제 조치는 수행되지 않습니다. 이 과 같이 일부 정적 ID (예 : list_sl
)로 바뀌면 작동하지만, 슬로베니아와 Horvatia뿐만 아니라 HTML에서도 이러한 링크가 많이 있으므로 변수가 많이 필요합니다.
도움 주셔서 감사합니다.
내가 삭제 한 후 첫 번째 버전에서 실수로 삭제를 취소했습니다. 죄송 합니다만, Stack Overflow에서 아직 새로운 점이 있습니다. – Nate
이것은 매우 간단한 솔루션의 일종으로, 또한 나를 위해 일한 감사합니다 네이트 – certainlyakey
그리고 내가 문제가 있었 IE/Opera에서 작동 ... – certainlyakey