首页 > 后端开发 > php教程 > php调用js定时器问题。

php调用js定时器问题。

WBOY
发布: 2016-06-23 14:06:36
原创
917 人浏览过

test.js代码如下:
var i = 0;
function fun()
{
 document.write(i);
 document.write("\n");
 i++;
}
function JavaTime()
{
setInterval('fun()',2000);
}


test.php代码如下:
nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



无标题文档

<script></script>

echo "<script>JavaTime();</script>"

?>




为什么js定时器只执行一次,然后浏览器一直处于这个状态:
只显示0,然后浏览器一直在转。。。


回复讨论(解决方案)

我也不怎么懂JS。换成alert(i)数字就会变化,奇怪了。

楼主,你换个不是IE内核的浏览器试试,比如chrome内核的,可以得到你想要的效果,但是换行不是\n而是
[img=http://][/img]

效果

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script type="text/javascript">function JavaTime(){    var icolor=0;    var iNum=256;    setTimeout(fun, 1000);    function fun()    {            document.write(icolor);            document.write('<br/>');            icolor++;            setTimeout(fun, 1000);                    }}</script></head><body><?phpecho "<script language='JavaScript' type='text/javascript'>JavaTime();</script>";?></body></html>
登录后复制

你这么写看看。我测过没有问题。

楼上说行的,都是在胡说!
当页面加载完成时,页面的载体 document 将被关闭
之后的 document.write 将在新的 document 中写
尽管非 ie 系列的浏览器只将 body 节点作为 document 的根,表面上 js 依然被执行了,但是 body 中原来的内容都不复存在了

因此只要是页面加载完成后才执行的 js,都只能用 innerHTML、innerText 操作页面内容或以 alert 显示信息

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板