我试图让AJAX页面,但是当我得到该页面,它包括Javascript代码 - 它不会执行它。ajax加载页面后执行JavaScript脚本 - 不起作用
为什么?
简单的代码在我的AJAX页面:
<script type="text/javascript">
alert("Hello");
</script>
...它不执行它。我正在尝试使用Google Maps API并使用AJAX添加标记,因此,无论何时添加标记,我都会执行一个获取新标记的AJAX页面,将其存储在数据库中,并应将标记“动态”添加到地图中。
但是因为我不能用这种方式执行一个javascript函数,我该怎么做?
我在页面上定义的函数是事先保护的还是私有的?
**使用Ajax功能的修订版**
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();
}
**解决方案通过Deukalion **
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侦听器中,而不是仅仅使一个“select onchange ='executeFunctionNotIncludedInAjaxFile();'”我不得不为这个添加EventListener(“change”,functionName,false)。在正在评估的脚本中。
请包括使AJAX请求和处理响应的代码示例。 –