-1

我写了这个脚本。根据我的说法,这个图像应该在警报块后出现并消失,但它没有发生。

<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>

有什么帮助吗?谢谢。

4

2 回答 2

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,这是一件非常糟糕的事情。expressions 仅(旧)IE 且已弃用。它们不再在当前的 IE(9 和 10)中工作,也不能在任何其他浏览器中工作。

于 2013-06-18T09:12:44.233 回答
-1

尝试这个

document.getElementById('idDivread').style.display='block';
setTimeout(function(){
    alert("Hello");
    document.getElementById('idDivread').style.display='none';
},3000);
于 2013-06-18T09:07:45.830 回答