如何在调用AJAX后使Javascript执行

时间:2012-03-28 03:54:51

标签: php javascript ajax

好的,在我的一个网站上,我有一个“新闻”侧边栏,可以显示表格中的事件。

我最近开始使用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);

感谢您的帮助!:)

2 个答案:

答案 0 :(得分:0)

使用jQuery代替上面的评论,你的生活会更容易

$.post(url, {keyy: value}, function(){
    // this function will be called after ajax call
})

答案 1 :(得分:0)

尝试将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有时会让事情变得更糟。上面的代码将确保它始终有效。