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()">