• window.open打开新窗口 参数


    1,基本描述

    1.1 方法签名:oNewWindow = window.open( sURL , sName , sFeatures, bReplace)
    通过方法签名可以看出,window.open在打开一个窗口(其url为sURL)后,将返回一个代表该窗口对象的一个变量
    oNewWindow,如果打开不成功,则oNewWindow的值为null。同时为了对打开的窗口预先做一些控制,提供了
    其他一些参数(sName、sFeatures、bReplace)可供选择配置,下面将具体说明每个参数的含义

    1.2 各参数的含义

    * oNewWindow:被打开的窗口的对象
    * sUrl:被打开窗口的url
    * sName:在哪个窗口打开新的url链接,例如可以为_blank(新窗口)、_top(最外层窗口)等等
    * sFeatures:对窗口的一些控制属性
    > fullscreen:是否为全屏模式(相当于F11的效果),可取值:yes/1、no/0
    > directories:是否带有目录按钮(例如收藏夹中的’链接’目录),可取值同上
    >location:是否带有地址栏,可取值同上
    >channelmode:是否为影院模式,可取值同上
    >menubar:是否带有菜单条,可取值同上
    > resizable:是否可以改变窗口的尺寸,可取值同上
    > scrollbars:是否带有滚动条,可取值同上
    >status:是否带有状态栏,可取值同上
    >titlebar:是否带有标题栏,可取值同上
    > toolbar:是否带有快捷工具栏,可取值同上
    >height:窗口高度
    >width:窗口宽度
    >top:距屏幕上边缘的距离
    >left:距屏幕左边缘的距离
    * bReplace:如果在同一窗口打开新窗口,该值用于指定是否在history中替换原窗口的url链接,可取

    值:true/false

    2,基本使用

    * 在一个新窗口中打开某个链接link(/myoa/admin/manage.jsp)

    window.open ( “/myoa/admin/manage.jsp” ) ;
    或者
    window.open ( “/myoa/admin/manage.jsp” , “_blank” ) ;
    注意:这样的话,每次执行都会打开一个新窗口,即使上次打开的新窗口未关闭,仍然会弹出新的

    * 在指定的某个窗口中打开某个链接link(/myoa/admin/manage.jsp)

    window.open ( “/myoa/admin/manage.jsp” , “myWiddown” ) ; //myWindow即为窗口的名称
    注意:如果myWindow窗口不存在,那么将会新弹出一个窗口,并将新窗口命名为myWindow,只要该窗口
    不关闭,那么以后执行该open,弹出窗口均为这个已经存在的myWindow
    另外,有一些窗口名称已经被浏览器使用,具有特殊的含义,例如:_blank、_top、_parent、_self等

    * 打开一个新窗口,要求窗口高度300px、宽度500px、不带滚动条、不带地址栏(/myoa/admin/manage.jsp)

    window.open ( “/myoa/admin/manage.jsp” , “_blank” ,

    “height=300,width=500,scrollbars=no,location=no” ) ;
    注意:sFeatures这些参数之间是用逗号分隔的,而在window.showModalDialog中,是用分号进行分隔的,一定要注意

    3,高级部分

    * 原窗口与弹出窗口之间的对象定位
    o 概述:弹出窗口是我们在页面编程中经常使用的一种方式,从互动角度分析,弹出窗口主要有两种类型,一种是信

    息显示窗口,例如人员信息、文章信息等等;另外 一种是继续处理窗口,例如有些项目中,新建文章就是弹出窗口来

    完成的。对于信息显示窗口,用户看完之后关闭就可以了,但是对于继续处理窗口,在用户继续处 理之后,往往需要

    与原窗口进行户动,例如当在新窗口中创建一篇文章提交后,希望在弹出窗口关闭的同时,原窗口能够刷新等等。
    o 解决方式:上面方式的一个关键就是,如何获取原窗口与弹出窗口对象,在DOM模型中我们可以明确的看到:
    + 原窗口中获取弹出窗口对象:

    var infoWindow=window.open ( “create.jsp” , “_blank” , “width=500,height=400″ ) ;
    //infoWindow即代表了弹出窗口的window对象,例如在弹出窗口中有一个表单(myForm)和表单中的一个输入控

    件(username),我们可以这样操作:
    infoWindow.document.myForm.username.value= “lisi” ;

    o 弹出窗口中获取原窗口对象:

    如上例,在create.jsp中,我们可以如下操作来刷新原窗口
    opener.location.reload () ;
    //opener是DOM中提供的一个默认对象,表示的就是某个窗口的原窗口。

    * wondow.open的缓存处理
    o 概述:如果window.open链接的target指定的是一个已经存在了的窗口,尤其是原页面中的一个frame和iframe的话

    ,此时 window.open打开的链接页面将不会从服务器重新请求,而是使用浏览器中相应的缓存页面,至少ie给人的感

    觉就是这样的,例如:

    <input type= “button” value= “显示列表” onclick= “window.open(’/myoa/users/list.jsp’,'main’,

    ”)” />
    <hr>
    <iframe name= “main” src= “/myoa/users/list.jsp” width= “100%” height= “600″ frameborder=

    “0″ ></iframe>
    第一次方式该页面是可以看到一个列表,那么此时即使新创建一条记录,那么再点击“显示列表”按钮时,会发现列

    表没有发生变化,此时关闭浏览器重新进行发现列表出现了刚创建的那条记录,可见缓存起了作用。

    o 解决办法:实验中我们发现,中导向链接不会发生上面的现象,每次都是重新请求,同样是上面的例子,使用下面

    的方式就是可以的:

    <a href= “/myoa/users/list.jsp” target= “main” >显示列表</a>
    <hr>
    <iframe name= “main” src= “/myoa/users/list.jsp” width= “100%” height= “600″ frameborder=

    “0″ ></iframe>
    不过有许多时候,我们不的不使用window.open到本页面某个iframe的方式(以后你可能会碰到的),那么可以类这样

    解决:

    <input type=”button” value=”显示列表” onclick=”document.getElementById(’showlist’).click()”/>
    <a href=”/myoa/users/list.jsp” target=”main” id=”showlist” style=”display:none”>显示列表</a>
    <hr>
    <iframe name=”main” src=”/myoa/users/list.jsp” width=”100%” height=”600″

    frameborder=”0″></iframe>
    上面的找个例子比较简单,在实际的项目中,在隐藏的link被触发之前,还需要做许多的javascipt工作。


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/riconyi/archive/2010/04/28/5540557.aspx

  • 相关阅读:
    RequireJS的简单应用
    关于浏览器兼容处理—— 识别IE浏览器
    Div+CSS命名规范
    用CSS开启硬件加速来提高网站性能(转)
    5步解决移动设备上的300ms点击延迟
    全面理解BFC
    纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
    Less和Sass编译
    Linux初级知识_03 -- 系统基础命令
    Linux初级知识_02 -- 基础命令
  • 原文地址:https://www.cnblogs.com/goole/p/1818424.html
Copyright © 2020-2023  润新知