Javascript 为什么赢了';我的脚本不会像它那样动态更新我的div';应该是吗? 身体{ 背景色:#000000; 字体系列:Arial、Helvetica、无衬线字体; 字体大小:20px; 文本对齐:居中; 颜色:#FFFFFF; } 功能睡眠(ms) { var dt=新日期(); dt.setTime(dt.getTime()+ms); while(newdate().getTime()

Javascript 为什么赢了';我的脚本不会像它那样动态更新我的div';应该是吗? 身体{ 背景色:#000000; 字体系列:Arial、Helvetica、无衬线字体; 字体大小:20px; 文本对齐:居中; 颜色:#FFFFFF; } 功能睡眠(ms) { var dt=新日期(); dt.setTime(dt.getTime()+ms); while(newdate().getTime(),javascript,dynamic,Javascript,Dynamic,在浏览器中查看源代码时,var设置正确,但不会设置div的内容。我确信PHP脚本指向的url是准确的,并且只包含一个从外部页面grep数字的脚本 提前谢谢 假设file\u get\u contents(“此处为我的url”)的值产生42(例如),您知道您正在创建一个无限循环,该循环将每隔1.5秒反复将\div的内容设置为42?也就是说,var count将始终持续为42,并且不会改变,因为PHP在服务器上只评估一次 此外,我怀疑您的sleep函数可能会带来一些问题,因为它会创建另一个紧循环。如

在浏览器中查看源代码时,
var
设置正确,但不会设置
div
的内容。我确信PHP脚本指向的url是准确的,并且只包含一个从外部页面grep数字的脚本


提前谢谢

假设
file\u get\u contents(“此处为我的url”)
的值产生
42
(例如),您知道您正在创建一个无限循环,该循环将每隔1.5秒反复将
\div
的内容设置为
42
?也就是说,
var count
将始终持续为
42
,并且不会改变,因为PHP在服务器上只评估一次

此外,我怀疑您的
sleep
函数可能会带来一些问题,因为它会创建另一个紧循环。如果这个脚本只是阻止浏览器而不更新任何内容,我不会感到惊讶,因为它陷入了一个无限循环。在Javascript中延迟执行的方法是使用
window.setTimeout
window.setInterval

我想你正在寻找某种AJAX解决方案,如果你能告诉我们你想做什么的话。由于您包含了jQuery(而没有实际使用它),因此您应该看一看,再加上定期更新
div

比如:

<html>
<head>
<style type="text/css">
    body {
        background-color: #000000;
        font-family: Arial, Helvetica, sans-serif;
        font-size: 20px;
        text-align: center;
        color: #FFFFFF;
    }
</style>
<script type="text/javascript" src="jquery-1.4.js"></script>
<script type="text/javascript">
function sleep(ms)
{
    var dt = new Date();
    dt.setTime(dt.getTime() + ms);
    while (new Date().getTime() < dt.getTime());
}
function update() {
    while (0 < 1) {<?php $contents = file_get_contents("my url here"); 
    ?>
        var count = <?php echo $contents ?>;
        document.getElementById('div').innerHTML = count;
        sleep(1500);
    }
}
</script>
</head>
<body onload=update()>
<iframe id="iframe" src="my url" style="visibility: hidden;"/>
<table width=100% height=100%>
<tr height=80%>
<td width=100%>
<center>
<div id="div"></div>
</center>
</td>
</tr>
</table>
</body>
</html>
var计数=;
document.getElementById('div')。innerHTML=count;

您通过php向Web服务器请求变量$contents,除非重新加载页面,否则该变量将始终是静态数字。试着使用jQuery,如上面的海报所示。

要回答这个问题,为什么它没有运行。。。您的
onload
需要引号:

var count = <?php echo $contents ?>;
document.getElementById('div').innerHTML = count;


但是其他人已经用jquery发布了更好的方法。

你能发布没有PHP的页面吗?(即,只需加载页面,查看源代码,然后将其复制到中)。另外,在我看来,HTML元素的名称很糟糕,称它们为“div”和“iframe”是不明确和令人困惑的。您应该使用setInterval()来代替无限循环/睡眠。。不要使用循环来模拟睡眠。。在这种情况下,系统所做的与睡眠完全相反……是的,我本打算使用jQuery,但从未使用过。。。我试试这个。谢谢
var count = <?php echo $contents ?>;
document.getElementById('div').innerHTML = count;
<body onload="update()">