读书人

下面是一个弹出窗口的代码 但是这他

发布时间: 2012-02-02 23:57:14 作者: rapoo

下面是一个弹出窗口的代码, 但是这他好象很占内存,请大家帮忙!
<script language= "JavaScript ">
var PopWidth = 181;
var PopHeight = 116;
var PopShow = 60000;
var PopTop = 0;
var showtime,hidetime,PopBorder = 16,PopHeightBorder = 28;
var oPopup = window.createPopup();

function popmsg(msgstr)
{
oPopup.document.body.innerHTML = ' <table width= "181 " height= "116 " border= "0 " cellspacing= "0 " cellpadding= "0 " bgcolor= "#D9E8FF " style= "border-left:1px solid #A5B6CE;border-top:1px solid #A5B6CE;border-right:1px solid #425594;border-bottom:1px solid #425594; "> ' +
' <tr> ' +
' <td width= "13 " height= "23 " background= "../images/Msn_Title_Bg.gif " style= "border-left:1px solid #FFFFFF;border-top:1px solid #FFFFFF;padding-left:5px; "> <img src= "images/msn1.jpg " width= "17 " height= "17 "> </td> ' +
' <td background= "../images/Msn_Title_Bg.gif " style= "border-top:1px solid #FFFFFF;border-right:1px solid #CEDFF7;padding-left:5px;font-size:12px;font-family:Arial;color:#18306B; "> 系统提示 </td> ' +
' </tr> ' +
' <tr> ' +
' <td colspan= "2 " style= "border-left:1px solid #FFFFFF;border-right:1px solid #CEDFF7;border-bottom:1px solid #CEDFF7; "> ' +
' <table width= "100% " height= "100% " border= "0 " cellpadding= "0 " cellspacing= "0 " background= "../images/Msn_Content_Bg.gif " style= "border-left:1px solid #738EBD;border-top:1px solid #738EBD;border-right:1px solid #BDCBEF;border-bottom:1px solid #BDCBEF; "> ' +


' <tr> ' +
' <td width= "66 " height= "88 " align= "center "> <img src= "images/msn2.jpg " width= "50 " height= "50 "> </td> ' +
' <td align= "center " style= "font-size:12px;font-family:Arial;color:#18306B> 谢谢光临 </td> ' +
' </tr> ' +
' </table> </td> ' +
' </tr> ' +
' </table> ';
popshow();
//oPopup.document.body.onclick = pophide;
}

function popshow()
{
var tmpHeight = PopTop <PopHeight?PopTop:PopHeight;
oPopup.show(screen.width-(PopWidth+PopBorder),screen.height-PopTop,PopWidth,tmpHeight);
if( PopTop < (PopHeight+PopHeightBorder) )
{
PopTop = PopTop + 5;
}else{
setTimeout( "pophide(); ",PopShow);
}
showtime = setTimeout( "popshow(); ",10);//100
}

function pophide()
{
if(showtime){clearTimeout(showtime);}
var tmpHeight = PopTop <PopHeight?PopTop:PopHeight;
oPopup.show(screen.width-(PopWidth+PopBorder),screen.height-PopTop,PopWidth,tmpHeight);
if( PopTop> 0 )
{
PopTop = PopTop - 10;
hidetime = setTimeout( "pophide(); ",10);


}else{
clearTimeout(hidetime);
oPopup.hide();
}
}

popmsg( "userinfo ");

//->
</script>

如果把打开的这个网页关闭就好了.

[解决办法]
垃圾代码的范本,字符串拼接不但性能低下而且调试困难,可谓垃圾代码中的极品!

建议 LZ 用 DOM 方法重构此段代码!
[解决办法]
字符串拼接性能不低吧 据说量大的时候效率还比document.createElement高
如果觉得字符串操作效率低那就用Array缓存一下然后join( " ")拼接
[解决办法]
var oPopup = window.createPopup();

在IE有写版本上不支持,不建议,用其他的模拟一个就是了


-----------------------
没有最好,只有更好!
http://www.crossgo.com
[解决办法]
做了点改动:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">
<html xmlns= "http://www.w3.org/1999/xhtml " xml:lang= "zh-cn ">
<head>
<title> 开发者园地 </title>
<meta http-equiv= "content-type " content= "text/html; charset=gb2312 "/>
<base href= "http://dotnet.aspx.cc/ "/>
<link href= "Images/favicon.ico " rel= "Shortcut Icon "/>
<link href= "Detail.css " type= "text/css " rel= "stylesheet "/>
<style>
html,body {margin:0}
</style>
</head>
<body>
<div id= "eMeng " style= "BORDER-RIGHT:#455690 1px solid; BORDER-TOP:#a6b4cf 1px solid; Z-INDEX:99999; LEFT:0px; VISIBILITY:hidden; BORDER-LEFT:#a6b4cf 1px solid; WIDTH:180px; BORDER-BOTTOM:#455690 1px solid; POSITION:absolute; TOP:0px; HEIGHT:116px; BACKGROUND-COLOR:#c9d3f3 ">
<table width= "100% " border= "0 " cellpadding= "0 " cellspacing= "0 " style= "BORDER-TOP:#ffffff 1px solid; BORDER-LEFT:#ffffff 1px solid " bgcolor= "#cfdef4 ">
<tr>
<td height= "24 " width= "26 " style= "FONT-SIZE:12px;BACKGROUND-IMAGE:url(Images/msgTopBg.gif);COLOR:#0f2c8c " valign= "middle "> <img src= "http://dotnet.aspx.cc/images/meng.gif " hspace= "5 " align= "absMiddle " vspace= "1 "/> </td>
<td style= "FONT-WEIGHT:normal;FONT-SIZE:9pt;BACKGROUND-IMAGE:url(Images/msgTopBg.gif);COLOR:#1f336b;PADDING-TOP:4px " valign= "middle " width= "100% "> 温馨提示: </td>
<td style= "BACKGROUND-IMAGE:url(Images/msgTopBg.gif);PADDING-TOP:2px " valign= "middle " width= "19 " align= "right "> <img src= "Images/msgClose.jpg " hspace= "3 " style= "CURSOR:pointer " onclick= "closeDiv() " title= "关闭 "/> </td>
</tr>
<tr>
<td colspan= "3 " height= "90 " style= "PADDING-RIGHT:1px;BACKGROUND-IMAGE:url(Images/msgBottomBg.jpg);PADDING-BOTTOM:1px ">
<div style= "BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 13px; BORDER-TOP: #728eb8 1px solid; PADDING-LEFT: 13px; FONT-SIZE: 9pt; PADDING-BOTTOM: 13px; BORDER-LEFT: #728eb8 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 18px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100% "> 请打开您的音箱收听不同的音乐吧,随机播放。快试试吧!:) <br/>


<div align= "center "> <a href= "# " onclick= "window.parent.frames[ 'TopMusic '].location= 'Play.aspx ';return false " style= "FONT-WEIGHT:bold;COLOR:navy "> 收听全部 </a> </div>
</div>
</td>
</tr>
</table>
</div>

<script type= "text/javascript ">
//<![CDATA[
var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0;
function getMsg()
{
try
{
divTop = parseInt(document.getElementById( "eMeng ").style.top, 10);
divLeft = parseInt(document.getElementById( "eMeng ").style.left, 10);
divHeight = parseInt(document.getElementById( "eMeng ").offsetHeight, 10);
divWidth = parseInt(document.getElementById( "eMeng ").offsetWidth, 10);
if (document.documentElement)
{
docWidth = document.documentElement.clientWidth;
docHeight = document.documentElement.clientHeight + document.documentElement.scrollTop;
}
else
{
docWidth = document.body.clientWidth;
docHeight = document.body.clientHeight;
}

document.getElementById( "eMeng ").style.top = (parseInt(document.body.scrollTop, 10) + docHeight) + "px " ;
document.getElementById( "eMeng ").style.left = (parseInt(document.body.scrollLeft, 10) + docWidth - divWidth) + "px ";
document.getElementById( "eMeng ").style.visibility = "visible ";
objTimer = window.setInterval( "moveDiv() ", 10);
}
catch(e){}
}

function resizeDiv()
{
//i += 1;
//if(i > 1288) closeDiv();//当过了1288秒自动关闭
try
{
divHeight = parseInt(document.getElementById( "eMeng ").offsetHeight, 10);
divWidth = parseInt(document.getElementById( "eMeng ").offsetWidth, 10);
if (document.documentElement)
{
docWidth = document.documentElement.clientWidth;
docHeight = document.documentElement.clientHeight + document.documentElement.scrollTop;
}
else
{
docWidth = document.body.clientWidth;
docHeight = document.body.clientHeight;
}

document.getElementById( "eMeng ").style.top = (docHeight - divHeight + parseInt(document.body.scrollTop, 10)) + "px ";
document.getElementById( "eMeng ").style.left = (docWidth - divWidth + parseInt(document.body.scrollLeft, 10)) + "px ";
}
catch(e){}
}

function moveDiv()
{
document.getElementById( "eMeng ").style.visibility = "visible ";
try
{
if (parseInt(document.getElementById( "eMeng ").style.top, 10) <= (docHeight - divHeight))
{
window.clearInterval(objTimer);
//objTimer = window.setInterval( "resizeDiv() ", 1);
objTimer = window.setTimeout( "closeDiv() ", 10000);//设置10秒后关闭
}
divTop = parseInt(document.getElementById( "eMeng ").style.top, 10);
document.getElementById( "eMeng ").style.top = (divTop - 1) + "px ";
}
catch(e){}
}
function closeDiv()
{
document.getElementById( 'eMeng ').style.visibility = 'hidden ';
if (objTimer) window.clearInterval(objTimer);
}
window.onload = getMsg;
window.onresize = window.onscroll = resizeDiv;
window.onerror = function(){}
//]]>
</script>
<br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>


<br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>
</body>
</html>

读书人网 >JavaScript

热点推荐