我写过这个剧本。据我说,这个图像应该在警报阻止之后消失,但它没有发生。
<html>
<head>
</head>
<body>
<div id='idDivread'
style="position:absolute;
z-index:100;
width:expression(document.body.offsetWidth +'px');
height:expression(document.body.offsetHeight + 'px');
left:0px;
top:0px;
display:'none';
text-align:center;
background-color:#EEF4FD;filter:alpha(opacity=70).">
<img src='images/Read.gif'
style="position:absolute;
top:expression(document.body.offsetHeight/2 -36 +'px')">
</div>
<div>
<input type="button" value="click me" onclick ="change();">
</div>
<p id="example"></p>
</body>
<script type ="text/javascript">
function change()
{
idDivread.style.display='';
setTimeout(function(){
alert("Hello")
},3000);
idDivread.style.display='none';
}
</script>
有任何帮助吗?感谢。
答案 0 :(得分:1)
脚本不会停止并等待setTimeout
执行。您需要将图像的隐藏与setTimeout
一起放入alert
回调函数中:
此外,您不能[*]仅通过其ID来访问元素。您需要使用getElementById
来获取参考:
var idDivread = document.getElementById('idDivread');
idDivread.style.display='';
setTimeout(function(){
alert("Hello");
idDivread.style.display='none';
},3000);
[*]嗯,你可以,但你不应该,因为你依赖于旧的非标准浏览器功能。
编辑:您迫切应该确保使用DOCTYPE,因为目前您依赖Quirks mode,这是一件非常糟糕的事情。expression
仅限(旧)IE并且已弃用。它们不再适用于当前的IE(9和10),也不适用于任何其他浏览器。
答案 1 :(得分:-1)
试试这个
document.getElementById('idDivread').style.display='block';
setTimeout(function(){
alert("Hello");
document.getElementById('idDivread').style.display='none';
},3000);