我已经检查了其他相关条目,但似乎没有一个是我的问题。下面的HTML页面在Chrome上运行得非常好。有三行输出。
但是,在IE9上,只输出第一行。关于为什么会出现这种情况的任何想法?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script>
var process = (function () {
var count = 0;
function _execute() {
count++;
document.write("Executed " + count + " time(s).<br\>");
}
return {
add: function () {
setTimeout(_execute, 50);
}
};
})();
</script>
</head>
<body>
<script>
process.add();
process.add();
process.add();
</script>
</body>
</html>
输出Chrome:
Executed 1 time(s).
Executed 2 time(s).
Executed 3 time(s).
输出IE9:
Executed 1 time(s).
答案 0 :(得分:0)
页面加载后不要使用document.write!查看页面源。您将看到它取代整个文档。
使用appendChild或innerHTML向页面添加新内容。如果您正在调试,请使用控制台。
var process = (function () {
var count = 0,
outElem = document.getElementById("out");
function _execute() {
count++;
var li = document.createElement("li");
li.innerHTML = "Executed " + count + " time(s)";
outElem.appendChild(li);
}
return {
add: function () {
setTimeout(_execute, 50);
}
};
})();