|
|
4#

楼主 |
发表于 2009-4-11 12:49:58
|
只看该作者

第四:增加确认和否定按钮功能。如果只是弹出一个提示框,那么这种confirm还是那么难看,决定再改造下。
1:再提示文本div下面来增加一个相关按钮的div。
2:增加一个确认按钮,一个包含空格字符串的div(为了美化),一个否定按钮。
3:对外设置一个全局变量用来表明按钮的值,如点击确认按钮返回1,否定按钮返回0。
//按钮值
var MB_value = -1;
4:设置一个委托,使用户能根据返回值调用相应的回调方法。
//委托方法
var MB_CALLBACK = null;
5:页面调用代码,需要写一个回调方法。
//提示用户是否需要登录
function firm()
{
alert(convert("您是注册用户吗?"),callback)
}
function callback(value)
{
if(value=="1")
{
//中转到登录页面
location.href="/Login.aspx?nextUrl="+escape(window.location.href );
}
}
增加按钮容器相关代码如下:
var btnDiv=top.document.createElement("div");//显示相关按钮的容器
btnDiv.setAttribute('id','divJMAlertBtn');
btnDiv.setAttribute("align","left");
btnDiv.style.width = "60%";
top.document.getElementById("msgDiv").appendChild(btnDiv);//添加按钮内容
//添加提示按钮
//确定按钮
var btnOK=top.document.createElement("input")
btnOK.setAttribute("id","btnOK");
//msgBoxTitle.classname="msgbox_title";
btnOK.setAttribute("type","button");
btnOK.setAttribute("value","是");
btnOK.style.width="30px";
btnOK.onclick=function(){//单击确认按钮
top.document.body.removeChild(bgObj);
top.document.getElementById("msgDiv").removeChild(title);
top.document.body.removeChild(msgObj);
showSelectBoxes();
showObjectFlash();
//按钮赋值
MB_value=1;
if(MB_CALLBACK!=null)
{MB_CALLBACK(MB_value);}
}
top.document.getElementById("divJMAlertBtn").appendChild(btnOK);//添加确认按钮
//中间加一些空格
var msgSpace=top.document.createElement("span")
msgSpace.setAttribute("id","msgSpace");
msgSpace.innerHTML=" ";
top.document.getElementById("divJMAlertBtn").appendChild(msgSpace);
//否按钮
var btnNO=top.document.createElement("input")
btnNO.setAttribute("id","btnNO");
//msgBoxTitle.classname="msgbox_title";
btnNO.setAttribute("type","button");
btnNO.setAttribute("value","否");
btnNO.style.width="30px";
btnNO.onclick=function(){//单击否按钮
top.document.body.removeChild(bgObj);
top.document.getElementById("msgDiv").removeChild(title);
top.document.body.removeChild(msgObj);
showSelectBoxes();
showObjectFlash();
//按钮赋值
MB_value=0;
if(MB_CALLBACK!=null)
{MB_CALLBACK(MB_value);}
}
top.document.getElementById("divJMAlertBtn").appendChild(btnNO);//添加否按钮
第五:判断是纯显示提示文本呢,还是显示一个带确认的选择提示框。上面的方法中总会显示按钮,我们可以根据第二个参数是否存在来做为判断依据,如果没有回调方法就认为是显示文本,否则显示按钮和文本。
if(MB_CALLBACK==null)
{
//判断是否需要显示确认按钮
//如果没有回高方法则认为不需要显示按钮
return;
}
说明:本人js及美化都特别差,也只能稍微的修改下别人的作品,对界面要求高的朋友望见谅。 |
|