首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

这么好的重写系统alert和confirm的程序 竟然不兼容FF 哪位高手来挽救一上它呢

2012-09-16 
这么好的重写系统alert和confirm的程序 竟然不兼容FF 谁来挽救一下它呢?代码贴出来Effect.jsJScript code/

这么好的重写系统alert和confirm的程序 竟然不兼容FF 谁来挽救一下它呢?
代码贴出来

Effect.js

JScript code
/** * 功能:显示提示窗口 * 作者:申楠 qq:38371354 email:amushen1@yahoo.com.cn http;//amushen.cnblogs.com * 日期:2005-10-26 * 版本:1.1 * 备注:版权没有,随便拷贝,如果用于商业应用请通知本人,同时保留这段注释。 * */ /**  * 改造:黑旋风 QQ:23929003 email:lewclear97@163.com  * 日期:2006-03-17  * 版本:1.2  * 说明:本人在申楠同志的《显示提示窗口》基础上,将  */var alternateFrame=null;//生成的iframevar alternateWin=null;window.alert=showAlert;window.confirm=showConfirm;/** * 人机交互窗口,覆盖自带的 */function alternateWindow(){this.win=null;//生成对话框的窗口对象this.pBody=null;//生成的body容器对象this.pBg=null;this.type="alert";//默认的种类是alertthis.FocusWhere="OK";//焦点在哪个按钮上}/** * 模仿的alert窗口 */function showAlert(info){alternateWin=new alternateWindow();var pBody = alternateWin.init();alternateWin.initAlertBody(pBody,info);alternateWin.type="alert";}  /** * 模仿的alert窗口 */function showConfirm(info,ok_func,notok_func,ok_str,not_okstr){alternateWin=new alternateWindow();var pBody = alternateWin.init();alternateWin.initConfirmBody(pBody,info,ok_func,notok_func,ok_str,not_okstr);alternateWin.type="confirm";}/** * 作用:初始基本信息 */alternateWindow.prototype.init=function() {if(alternateFrame==null){alternateFrame=document.createElement("<iframe allowTransparency='true' id='popframe' frameborder=0 marginheight=0 src='about:blank' marginwidth=0 hspace=0 vspace=0 scrolling=no></iframe>")alternateFrame.style.position="absolute";document.body.appendChild(alternateFrame);}else{alternateFrame.style.visibility="visible";}alternateFrame.style.width=screen.availWidth;alternateFrame.style.height=screen.availHeight;alternateFrame.style.left=document.body.scrollLeft;alternateFrame.style.top=document.body.scrollTop;alternateFrame.name=alternateFrame.uniqueID;this.win=window.frames[alternateFrame.name];this.win.document.write("<body leftmargin=0 topmargin=0 oncontextmenu='self.event.returnValue=false'><div id=popbg></div><div id=popbody></div><div></div></body>");this.win.document.body.style.backgroundColor="transparent";document.body.style.overflow="hidden";this.pBody=this.win.document.body.children[1];this.pBg=this.win.document.body.children[0];this.hideAllSelect();this.initBg();return this.pBody;} /*** 作用:初始化背景层  */alternateWindow.prototype.initBg=function(){with(this.pBg.style){position="absolute";left="0";top="0";width="100%";height="100%";visibility="hidden";backgroundColor="#000000";filter="blendTrans(duration=1) alpha(opacity=30)";}this.pBg.filters.blendTrans.apply();this.pBg.style.visibility="visible";this.pBg.filters.blendTrans.play();}/** * 作用:初始化显示层 */alternateWindow.prototype.initAlertBody=function(obj,info){with(obj.style){position="absolute";width="400";height="150";backgroundColor="#ffffff";}obj.style.left=window.document.body.clientWidth/2-200;obj.style.top=window.document.body.clientHeight/10;var str;str ="<table border=0 cellpadding=0 cellspacing=1 bgcolor=#000000 width=100% height=100%><tr height=30>";str+="<td align=left style='color:#e1dfdf;font-size:14px;font-weight:bold' bgcolor=#454545>【新闻详细】<span id=newstitle></span></td></tr>";str+="<tr><td align=center bgcolor=#e1dfdf style='font-size:12px;color:#454545;vertical-align: top;padding-top:5px;'>";str+=info+"</td></tr><tr height=40 bgcolor=#cccccc><td align=center>" +     "<input type='button' value='关 闭' id='OK'" +     " onkeydown='parent.alternateWin.onKeyDown(event,this)'"+     " onclick='parent.alternateWin.closeWin()' style='border:solid 1px #797979;background:#f8f8f8;width:80px; padding:3px;'>" +     "</td></tr></table>";obj.innerHTML=str;this.win.document.body.all.OK.focus();this.FocusWhere="OK";}alternateWindow.prototype.onKeyDown=function(event,obj){  switch(event.keyCode){  case 9:   event.keyCode=-1;  if(this.type=="confirm"){  if(this.FocusWhere=="OK"){  this.win.document.body.all.NO.focus();  this.FocusWhere="NO";  }else{  this.win.document.body.all.OK.focus();  this.FocusWhere="OK";  }  }  break;  case 13:obj.click();;break;  case 27:this.closeWin();break;   }  }/** * 作用:初始化显示层 conFirm提示层 */alternateWindow.prototype.initConfirmBody=function(obj,info,ok_func,notok_func,ok_str,notok_str){with(obj.style){position="absolute";width="400";height="150";backgroundColor="#ffffff";}if(ok_str==null){ok_str="确定";}if(notok_str==null){notok_str="取消"}obj.style.left=window.document.body.clientWidth/2-200;obj.style.top=window.document.body.clientHeight/3;var str;str="<table border=0 cellpadding=0 cellspacing=1 bgcolor=#000000 width=100% height=100%><tr height=30>";str+="<td align=left style='color:#000000;font-size:14px;font-weight:bold' bgcolor=#9999ff>[询问]</td></tr>";str+="<tr><td align=center bgcolor=#efefff style='font-size:12px;color:#000000;vertical-align: middle;'>";str+=info+"</td></tr><tr height=30 bgcolor=#efefef><td align=center>" +"<input type='button' id='OK'" +" onkeydown='parent.alternateWin.onKeyDown(event,this)'"+" onclick='parent.alternateWin.closeWin();parent."+ok_func+"();' " +" value='"+ok_str+"' style='border:solid 1px #666666;background:#cccccc'>"+"&nbsp;&nbsp;&nbsp;<input type='button' value='"+notok_str+"' id='NO'"+" onkeydown='parent.alternateWin.onKeyDown(event,this)'"+" onclick='parent.alternateWin.closeWin();" +" parent."+notok_func+"();' style='border:solid 1px #666666;background:#cccccc'></td></tr></table>";obj.innerHTML=str;this.win.document.body.all.OK.focus();}/** * 作用:关闭一切 */alternateWindow.prototype.closeWin=function(){alternateFrame.style.visibility="hidden";this.showAllSelect();document.body.style.overflow="auto";}/**  * 作用:隐藏所有的select  */alternateWindow.prototype.hideAllSelect=function(){  var obj;  obj=document.getElementsByTagName("SELECT");  var i;  for(i=0;i<obj.length;i++)obj[i].style.visibility="hidden";  }/** * 显示所有的select */   alternateWindow.prototype.showAllSelect=function(){  var obj;  obj=document.getElementsByTagName("SELECT");  var i;  for(i=0;i<obj.length;i++)obj[i].style.visibility="visible";} 



调用的时候

test.html
HTML code
<!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=utf-8" /><script type="text/javascript" src="Effect.js"></script><title>无标题文档</title><script>function clk_yes(){    alert("哈哈哈");}function clk_no(){    alert("哈哈哈1111");}</script></head><body><input name="" type="submit" onclick="return confirm('今天天气真的很好啊,难道不是么?','clk_yes','clk_no','就算是吧','乱讲');" /></body></html>


FF 火狐竟然不兼容~ 天理不容啊~ 哪位高手挽救一下它呢? 讨论出是哪里的问题也行啊 点到题目问题上的朋友统统给分啊!

[解决办法]
建议再加入一个JS

使用IE和FF接近

http://blog.csdn.net/rjzou2006/archive/2008/03/31/2232293.aspx

不行再给我发信息。
[解决办法]
HTML code
<!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>function clk_yes(){    alert("哈哈哈");}function clk_no(){    alert("哈哈哈1111");}var alternateFrame=null;//生成的iframevar alternateWin=null;window.alert=showAlert;window.confirm=showConfirm;var IsIE=document.all;function alternateWindow(){this.win=null;//生成对话框的窗口对象thisv 

热点排行
Bad Request.