AJAX로 페이지를 가져 오려고하는데, 해당 페이지를 가져 오면 Javascript 코드가 포함되어 실행되지 않습니다.AJAX- 페이지를로드 한 후 JavaScript 스크립트를 실행하면 작동하지 않습니다.
왜? 내 아약스 페이지에서
간단한 코드 :
<script type="text/javascript">
alert("Hello");
</script>
... 그리고 그것을 실행하지 않습니다. Google Maps API를 사용하고 AJAX로 마커를 추가하려고하므로 새로운 마커를 가져 오는 AJAX 페이지를 실행할 때 데이터베이스에 저장하고지도에 마커를 동적으로 추가해야합니다.
하지만이 방법으로 단일 자바 스크립트 기능을 실행할 수 없기 때문에 어떻게해야합니까?
내가 미리 정의한 페이지의 기능이 보호되었거나 비공개입니까?
** AJAX 기능으로 업데이트 ** Deukalion에 의해
function ajaxExecute(id, link, query)
{
if (query != null)
{
query = query.replace("amp;", "");
}
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 (id != null)
{
document.getElementById(id).innerHTML=xmlhttp.responseText;
}
}
}
if (query == null)
{
xmlhttp.open("GET",link,true);
}
else
{
if (query.substr(0, 1) != "?")
{
xmlhttp.open("GET",link+"?"+query,true);
}
else
{
xmlhttp.open("GET",link+query,true);
}
}
xmlhttp.send();
}
** 솔루션 **
var content = xmlhttp.responseText;
if (id != null)
{
document.getElementById(id).innerHTML=content;
var script = content.match("<script[^>]*>[^<]*</script>");
if (script != null)
{
script = script.toString().replace('<script type="text/javascript">', '');
script = script.replace('</script>', '');
eval(script);
}
}
및 특정 이벤트에, 내가 스크립트 addevent 리스너 이내했다 대신
은 만들기 a "select onchange = 'executeFunctionNotIncludedInAjaxFile();'"이것에 대해 addEventListener ("change", functionName, false)를 추가해야했습니다. 평가중인 스크립트에서.
AJAX 요청을 만들고 응답을 처리하는 코드 예를 포함하십시오. –