[英]How to make Javascript Execute after AJAX is called
好的,在我的一个站点上,我有一个“新闻”侧边栏,用于显示表中的事件。
我最近开始使用AJAX自行更新表。
AJAX在大多数情况下都起作用,除了一件事之外……每个事件的时间均不起作用。 我使用JS来显示时间。
以下是一个事件的示例...
<div class="event">
<p>The event text</p>
<script type="text/javascript">
//The timestamp variable below is fed by a PHP script from a big table of events.
//Also keep in mind there are many events on the page!
document.write(get_time(1332900003));
</script>
</div>
因此问题在于AJAX从表中获取HTML,将其吐出,但是随后未执行get_time函数:(在使用AJAX之前,这种方法工作正常,但现在不行。
那么如何在AJAX调用javascript之后执行它呢? 我正在使用此AJAX脚本...
function updateNews()
{
var xmlhttp;
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 (document.getElementById("news").innerHTML != xmlhttp.responseText)
{
document.getElementById("news").innerHTML=xmlhttp.responseText;
}
}
}
xmlhttp.open("GET","display2.php",true);
xmlhttp.send();
}
updateNews();
setInterval( "updateNews()", 5000);
谢谢您的帮助!:)
如上文所述,使用jQuery代替,您的生活会轻松得多
$.post(url, {keyy: value}, function(){
// this function will be called after ajax call
})
尝试将HTML修改为以下内容:
<div class="event">
<p>The event text</p>
<div id="showtime_xx"></div>
<script type="text/javascript">
document.getElementById("showtime_xx").innerHTML = get_time(1332900003);
</script>
</div>
document.write
有时会使情况更糟。 上面的代码将确保它始终有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.