想到C/S架构的软件登录框在屏幕中央,想想能否在网站后台需要登录的地方也打开个输入框窗口,帐号密码正确后打开页面呢(前人也许早已实现,这里只是说说自己做的测试,不要拍砖噢)
马上就开始实验.想想在web开发时,javascript打开窗体的命令有window.open(),还有个模式窗口(showModalDialog),还有一种思路就是直接在打开页面时将页面改变大小(调整为登录框大小).
要用到javascript脚本来控制窗体,就先补补这方面的命令.(临时抱佛脚),现在的搜索功能太强大了,随便baidu一下,google一下,资源一篇接一篇的,感慨啊,信息时代就是快啊.言规正传,为了普及js知识我将javascript的window对象相关说明就copy到这里了,大家也可以去看看其他教程,温习一下
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
Window对象
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Window对象表示浏览器窗口,它位于对象模型的顶层。
Window对象的集合
集合 说明
frames[] 取得Window对象中所有已命名的frame
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Window对象的属性
属性 说明
closed 窗口是否关闭
defaultStatus 窗口状态栏的默认文本
document Document对象
history History对象
length Window对象的frame个数
location Location对象
name Window对象的名称
opener 打开当前Window的窗口的引用
parent 父窗口
self 返回当前窗口的引用
status 窗口状态栏文本
top 最顶层窗口
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Window对象的方法
方法 说明
alert([Message]) 显示带有警告信息Message的窗口,并有“确定”按钮
blur() 移除本窗口的焦点
clearInterval(iIntervalID) 取消先前用setInterval方法开始的标识为iIntervalID的间隔事件
clearTimeout(iTimeoutID) 取消先前用setTimeout方法开始的标识为iTimeoutID的超时事件
close() 关闭当前窗口
confirm([message]) 显示带有确认信息message的窗口,有“确定”和“取消”按钮
createPopup() 创建弹出窗口,返回该窗口对象的引用
focus() 使本窗口获得焦点
moveBy(x,y) 将窗口的位置移动到指定的x和y偏移值
moveTo(x,y) 将窗口左上角的屏幕位置移动到指定的x和y位置
open() 打开新窗口,显示指定的页面
print() 打印与窗口关联的文档
prompt([message][,defaultValue]) 显示提示对话框,带有提示消息message和默认值defaultValue的输入框,返回用户输入的字符串
resizeBy(x,y) 更改窗口的当前位置缩放指定的x和y偏移量
resizeTo(x,y) 将窗口的大小更改为指定的宽度值x和高度值y
scrollBy(x,y) 将窗口滚动x和y偏移量
scrollTo(x,y) 将窗口滚动到指定的x和y偏移量
setInterval(code,ms[,language]) 每经过ms毫秒后执行代码code,language指定语言属性。返回整形标识,以便clearInterval方法取消该定时器
setTimeout(code,ms[,language]) 经过ms毫秒后执行代码code,language指定语言属性。返回整形标识,以便clearTimeout方法取消该定时器
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
在温习时看到window对象里有个resizeTo方法改变指定大小; moveTo方法移动到指定位置就是它们俩了.(没事偷着乐会)
新建一页面1.htm
录入如下简单代码:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
<script type="text/javascript">
window.resizeTo(400, 300);
window.moveTo(600, 200);
</script>
窗口大小是改变了,随后的问题是,如何在打开本页时将本页的menu、toolbar等统统隐掉,查了半天资料,只怪自己学艺不精(书到用时方恨少),顺便说个题外话,大家要老记毛主席的话“好好学习,天天向上”。我们不能就此打住啊,这条不行,我们走别的路。
下面用到window.open方法。
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
用一小实例说明window.open参数,注:网上这个例子用烂了.
window.open ("page.html", "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no");
window.open 弹出新窗口的命令;
'page.html' 弹出窗口的文件名;
'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;
height=100 窗口高度;
width=400 窗口宽度;
top=0 窗口距离屏幕上方的象素值;
left=0 窗口距离屏幕左侧的象素值;
toolbar=no 是否显示工具栏,yes为显示;
menubar,scrollbars 表示菜单栏和滚动栏。
Resizable=no 是否允许改变窗口大小,yes为允许;
location=no 是否显示地址栏,yes为允许;
status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
普及完了之后,开始动工,主要想法是用一页面做跳板,直接open一个窗口,打开子窗口的同时,关闭父窗口。新建2.htm(跳板页面),3.htm(登录页面)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
2.htm代码如下:
<script type="text/javascript">
window.open ("3.htm", "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") ;
window.opener=null;
window.close();
</script>
3.htm是登录框代码(将1.htm去掉script代码)
效果向我们想的方向进了一小步,打开时没有什么采单栏,工具栏,地址栏了.大家一看代码,就知道了,对,js脚本只在IE上运行正常,发现问题,马上想方法,用js对客户端浏览器类型进行判断,不用IE的直接打开登录页面(locaction.href).
简单代码如下:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
<script type="text/javascript">
if(navigator.userAgent.indexOf("Firefox")!=-1)
{
OtherOpenWindow();
}
else if(navigator.userAgent.indexOf("Maxthon")!=-1)
{
OtherOpenWindow();
}
else if(navigator.userAgent.indexOf("Safari")!=-1)
{
OtherOpenWindow();
}
else if(navigator.userAgent.indexOf("Camino")!=-1)
{
OtherOpenWindow();
}
else if(navigator.userAgent.indexOf("Konqueror")!=-1)
{
OtherOpenWindow();
}
else if(navigator.userAgent.indexOf("MSIE")!=-1)
{
IEOpenWindow();
}
else
{
OtherOpenWindow();
}
function IEOpenWindow()
{
window.open ("3.htm", "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") ;
window.opener=null;
window.close();
}
function OtherOpenWindow()
{
location.href="3.htm";
}
</script>
User-Agent参数在这里就不在介绍了,大家可以用Fidder 分别看下各浏览器的User-Agent参数值.
模式方法略了,有兴趣的大家可以自己去测试了.主是就是用模式窗口中登录后,返回主页面(2.htm)时,要对返回结果进行判断,成功跳转到3.htm,失败就跳到错误页面(error.htm).
总结:略.
实例下载
补充:
昨天去了 ublue.liao 的博客,进到他的精灵部落,效果不错.题外话..,哈..
参考:
http://www.diybl.com/course/1_web/javascript/jsjs/20071226/94568.html
http://blog.sina.com.cn/s/blog_49df2d0b01009epq.html