繁体   English   中英

如何在调用AJAX之后执行Javascript

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM