这个简单的代码(进度条)在IE以外的任何地方都可以正常工作(试过9和8):
<!-- Progress bar holder -->
<div id="progress" style="width:500px;border:1px solid #eee;"></div>
<!-- Progress information -->
<div id="information" style="width"></div>
<?php
// Total processes
$total = 10;
// Loop through process
for($i=1; $i<=$total; $i++){
// Calculate the percentation
$percent = intval($i/$total * 100)."%";
// Javascript for updating the progress bar and information
echo '<script language="javascript">
document.getElementById("progress").innerHTML="<div style=\"width:'.$percent.'; background-color:#ddd;\"> </div>";
document.getElementById("information").innerHTML="'.$i.' row(s) processed.";
</script>';
// This is for the buffer achieve the minimum size in order to flush data
echo str_repeat(' ',1024*64);
// Send output to browser immediately
flush();
// Sleep one second so we can see the delay
sleep(1);
}
// Tell user that the process is completed
echo '<script language="javascript">document.getElementById("information").innerHTML="Process completed"</script>';
?>
IE显示错误“无法设置属性'innerHTML'的值:对象为null或未定义”。 问题似乎在这里:
document.getElementById("progress").innerHTML="<div style=\"width:'.$percent.';background-color:#ddd;\"> </div>";
在这种情况下,试图自己修理它,但对我来说太复杂了。任何帮助都感激不尽。 谢谢)
答案 0 :(得分:1)
该文档可能尚未加载。
试
window.onload = function() {
// your code
}
或者我总是使用jQuery
$(function () {
// your code
});
答案 1 :(得分:0)
解决方案最有可能确保您的文档具有正确的结构。
这不起作用:
<div id="content"></div>
<script>
document.getElementById('content').innerHTML="HELLO WORLD";
</script>
这确实有效:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="content"></div>
<script>
document.getElementById('content').innerHTML="HELLO WORLD";
</script>
</body>
</html>