日期:2014-05-16  浏览次数:20373 次

js的alert是否可以自动关闭????如何做到
谁知道alert弹出来的框框,能不能做一个倒计时,然后自动消失?

比如alert(123); 然后显示123的对话框,接着2秒钟自动关闭

网上找了很多的都是说需要重写这个alert方法。。。

有没有简单点的做法。。。求教
asp.net javascript

------解决方案--------------------
alert阻塞程序往下运行  貌似不能的样子
------解决方案--------------------
alert() 是不会自动关闭的,可以将alert()这个对话框换成窗口或是一个小的页面
------解决方案--------------------
可以自己写个窗口,弹出,显示时间倒数,在特定条件下关闭窗口
------解决方案--------------------
自己写一个弹出层组件来作为消息框就行了

思路是
1.显示一个占据浏览器全部的层(一般设置为半透明)来遮住浏览器模拟模态效果
2.再渲染一个比遮罩更高(z-index更大)的层来显示你的消息内容
------解决方案--------------------
window.alert = function(str) {
   //重寫alert
}

調用的時候就會調用這個你自定義的了
------解决方案--------------------
直接调用即可:for example :

function showSimpleMessage() {
// if ($("#simpaleMessageDiv").attr("id")=="")
var flag = document.getElementById("simpaleMessageDiv")==null;
if (flag) {
$("BODY").append('<div id="simpaleMessageDiv" style="background-color:yellow">&nbsp;</div>');
var pos = ($.browser.msie && parseInt($.browser.version) <= 6 ) ? 'absolute' : 'fixed'; 

$("#simpaleMessageDiv").css({
position: pos,
zIndex: 99999,
padding: 0,
margin: 0
});

$("#simpaleMessageDiv").text(arguments[0]);
var top = 50;
var left = (($(window).width() / 2) - ($("#simpaleMessageDiv").outerWidth() / 2)) + 0;
if( top < 0 ) top = 0;
if( left < 0 ) left = 0;

// IE6 fix
if( $.browser.msie && parseInt($.browser.version) <= 6 ) top = top + $(window).scrollTop();

$("#simpaleMessageDiv").css({
top: top + 'px',
left: left + 'px'
});

// window.setTimeout(hideSimpleMessage, 3000);
} else {
$("#simpaleMessageDiv").text(arguments[0]);

// $("#simpaleMessageDiv").fadeIn(200);
// clearTimeout();
// window.setTimeout(hideSimpleMessage, 3000);
}
$("#simpaleMessageDiv").fadeIn(200).delay(4000).slideUp(200);
}