<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript" language="javascript">
var time = 10;
function dec()
{
    try
    {
        time--;
        document.getElementById("time_pad").innerHTML = time;
        if (time == 0) document.getElementById("do_OK").fireEvent("onclick");
    }
    catch (e)
    { }
}
function sAlert(txt,success, delaytime)
{
   // try
   // {
        if (success)
        {
            txt = "<img alt='success' src='../images/ico/035.png' align='Middle'/>恭喜!" + txt;
        }
        else
        {
            txt = "<img alt='failed' src='../images/ico/039.png' align='Middle'/>Sorry!" + txt;
        }
        time = delaytime;
        window.setInterval("dec()", 1000);
        var shield = document.createElement("DIV");
        shield.id = "shield";
        shield.style.position = "absolute";
        shield.style.left = "0px";
        shield.style.top = "0px";
        shield.style.width = "100%";
        shield.style.height = document.body.scrollHeight + "px";
        shield.style.background = "#333";
        shield.style.textAlign = "center";
        shield.style.zIndex = "10000";
        shield.style.filter = "alpha(opacity=0)";
        shield.style.opacity = 0;
        var alertFram = document.createElement("DIV");
        alertFram.id = "alertFram";
        alertFram.style.position = "absolute";
        alertFram.style.left = "50%";
        alertFram.style.top = "50%";
        alertFram.style.marginLeft = "-225px";
        alertFram.style.marginTop = -75 + document.documentElement.scrollTop + "px";
        alertFram.style.width = "450px";
        alertFram.style.height = "150px";
        alertFram.style.background = "#ccc";
        alertFram.style.textAlign = "center";
        alertFram.style.lineHeight = "150px";
        alertFram.style.zIndex = "10001";
        strHtml = " <ul style=\"list-style:none;margin:0px;padding:2px;width:100%\"> \n";
        strHtml += "  <li style=\"background:#EDF2F5;text-align:left;padding-left:20px;font-size:18px;font-weight:bold;height:25px;line-height:25px;border:1px solid #F9CADE;\"> [提示信息]:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span id='time_pad' style=\"color:blue;font-family:Verdana;font-weight:bold;\">" + time + "</span>  秒钟后关闭" + " </li>  \n";
        strHtml += "  <li style=\"background:#fff;text-align:center;font-size:14px;height:120px;line-height:120px;border-left:1px solid #F9CADE;border-right:1px solid #F9CADE;\"> " + txt + " </li> \n";
        strHtml += "  <li style=\"background:#FDEEF4;text-align:center;font-weight:bold;height:20px;line-height:25px; border:1px solid #C6E1F2;\"> <input type=\"button\" value=\" 确 定 \" id=\"do_OK\" onclick=\"doOk()\" style=\"width:60px\" /> </li> \n";
        strHtml += " </ul> \n";
        alertFram.innerHTML = strHtml;
        document.body.appendChild(alertFram);
        document.body.appendChild(shield);
        this.setOpacity = function(obj, opacity)
        {
            if (opacity >= 1) opacity = opacity / 100;
            try { obj.style.opacity = opacity; } catch (e) { }
            try
            {
                if (obj.filters.length > 0 && obj.filters("alpha"))
                {
                    obj.filters("alpha").opacity = opacity * 150;
                } else
                {
                    obj.style.filter = "alpha(opacity=\"" + (opacity * 150) + "\")";
                }
            } catch (e) { }
        }
        var c = 0;
        this.doAlpha = function()
        {
            if (++c > 20) { clearInterval(ad); return 0; }
            setOpacity(shield, c);
        }
        var ad = setInterval("doAlpha()", 1);
        this.doOk = function()
        {
            document.body.removeChild(alertFram);
            document.body.removeChild(shield);
            document.body.onselectstart = function() { return true; }
            document.body.oncontextmenu = function() { return true; }
        }
        document.getElementById("do_OK").focus();
        document.body.onselectstart = function() { return false; }
        document.body.oncontextmenu = function() { return false; }
   // }
   // catch (e)
   // { }
}
</script>
</head><body>
<input type="button"  onclick="sAlert('提示提示',false,6);" value="提示" />
</body>
</html>
第一个参数: 提示内容
第二个参数: 图片显示
第三个参数: 关闭时间弹出提示框自动关闭,第一次执行还正常,但第二次执行时发现时间还没有到就关,
执行的次数越多,关闭的就越快,怎么修改一下啊,我对JS基本不懂。。
先谢了

解决方案 »

  1.   

    要先clearInterval()<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript" language="javascript">
    var time = 10;
    var tid;
    function dec()
    {
        try
        {
            time--;
            document.getElementById("time_pad").innerHTML = time;
            if (time == 0) document.getElementById("do_OK").fireEvent("onclick");
        }
        catch (e)
        { }
    }
    function sAlert(txt,success, delaytime)
    {
       // try
       // {
            if (success)
            {
                txt = "<img alt='success' src='../images/ico/035.png' align='Middle'/>恭喜!" + txt;
            }
            else
            {
                txt = "<img alt='failed' src='../images/ico/039.png' align='Middle'/>Sorry!" + txt;
            }
            time = delaytime;
            if(tid!=null){clearInterval(tid);tid=null}
            tid = window.setInterval("dec()", 1000);
            var shield = document.createElement("DIV");
            shield.id = "shield";
            shield.style.position = "absolute";
            shield.style.left = "0px";
            shield.style.top = "0px";
            shield.style.width = "100%";
            shield.style.height = document.body.scrollHeight + "px";
            shield.style.background = "#333";
            shield.style.textAlign = "center";
            shield.style.zIndex = "10000";
            shield.style.filter = "alpha(opacity=0)";
            shield.style.opacity = 0;
            var alertFram = document.createElement("DIV");
            alertFram.id = "alertFram";
            alertFram.style.position = "absolute";
            alertFram.style.left = "50%";
            alertFram.style.top = "50%";
            alertFram.style.marginLeft = "-225px";
            alertFram.style.marginTop = -75 + document.documentElement.scrollTop + "px";
            alertFram.style.width = "450px";
            alertFram.style.height = "150px";
            alertFram.style.background = "#ccc";
            alertFram.style.textAlign = "center";
            alertFram.style.lineHeight = "150px";
            alertFram.style.zIndex = "10001";
            strHtml = " <ul style=\"list-style:none;margin:0px;padding:2px;width:100%\"> \n";
            strHtml += "  <li style=\"background:#EDF2F5;text-align:left;padding-left:20px;font-size:18px;font-weight:bold;height:25px;line-height:25px;border:1px solid #F9CADE;\"> [提示信息]:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span id='time_pad' style=\"color:blue;font-family:Verdana;font-weight:bold;\">" + time + "</span>  秒钟后关闭" + " </li>  \n";
            strHtml += "  <li style=\"background:#fff;text-align:center;font-size:14px;height:120px;line-height:120px;border-left:1px solid #F9CADE;border-right:1px solid #F9CADE;\"> " + txt + " </li> \n";
            strHtml += "  <li style=\"background:#FDEEF4;text-align:center;font-weight:bold;height:20px;line-height:25px; border:1px solid #C6E1F2;\"> <input type=\"button\" value=\" 确 定 \" id=\"do_OK\" onclick=\"doOk()\" style=\"width:60px\" /> </li> \n";
            strHtml += " </ul> \n";
            alertFram.innerHTML = strHtml;
            document.body.appendChild(alertFram);
            document.body.appendChild(shield);
            this.setOpacity = function(obj, opacity)
            {
                if (opacity >= 1) opacity = opacity / 100;
                try { obj.style.opacity = opacity; } catch (e) { }
                try
                {
                    if (obj.filters.length > 0 && obj.filters("alpha"))
                    {
                        obj.filters("alpha").opacity = opacity * 150;
                    } else
                    {
                        obj.style.filter = "alpha(opacity=\"" + (opacity * 150) + "\")";
                    }
                } catch (e) { }
            }
            var c = 0;
            this.doAlpha = function()
            {
                if (++c > 20) { clearInterval(ad); return 0; }
                setOpacity(shield, c);
            }
            var ad = setInterval("doAlpha()", 1);
            this.doOk = function()
            {
                document.body.removeChild(alertFram);
                document.body.removeChild(shield);
                document.body.onselectstart = function() { return true; }
                document.body.oncontextmenu = function() { return true; }
            }
            document.getElementById("do_OK").focus();
            document.body.onselectstart = function() { return false; }
            document.body.oncontextmenu = function() { return false; }
       // }
       // catch (e)
       // { }
    }
    </script>
    </head><body>
    <input type="button"  onclick="sAlert('提示提示',false,6);" value="提示" />
    </body>
    </html>