zoukankan      html  css  js  c++  java
  • JS window.open()

    一. Window 对象

    Window 对象是 JavaScript 层级中的顶层对象。

    Window 对象代表一个浏览器窗口或一个框架。

    Window 对象会在 <body> 或 <frameset> 每次出现时被自动创建。

    二.

    open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。

    三.

    window.open(URL,name,features,replace)

    参数描述
    URL 一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。
    name 一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 <a> 和 <form> 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。
    features 一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。
    replace

    一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值:

    • true - URL 替换浏览历史中的当前条目。
    • false - URL 在浏览历史中创建新的条目。

    四.窗口特征(Window Features)

    channelmode=yes|no|1|0 是否使用剧院模式显示窗口。默认为 no。
    directories=yes|no|1|0 是否添加目录按钮。默认为 yes。
    fullscreen=yes|no|1|0 是否使用全屏模式显示浏览器。默认是 no。处于全屏模式的窗口必须同时处于剧院模式。
    height=pixels 窗口文档显示区的高度。以像素计。
    left=pixels 窗口的 x 坐标。以像素计。
    location=yes|no|1|0 是否显示地址字段。默认是 yes。
    menubar=yes|no|1|0 是否显示菜单栏。默认是 yes。
    resizable=yes|no|1|0 窗口是否可调节尺寸。默认是 yes。
    scrollbars=yes|no|1|0 是否显示滚动条。默认是 yes。
    status=yes|no|1|0 是否添加状态栏。默认是 yes。
    titlebar=yes|no|1|0 是否显示标题栏。默认是 yes。
    toolbar=yes|no|1|0 是否显示浏览器的工具栏。默认是 yes。
    top=pixels 窗口的 y 坐标。
    width=pixels 窗口的文档显示区的宽度。以像素计。

    五.

    注意:     

    window.open(URL,name,features,replace)

    如果name使用名字已经存在,那么不会创建一个新的窗口,而是会返回对已经存在的窗口的引用。

    否则,则创建一个新的窗口。

    我就是没有注意这点,网页全屏时候,花了很多时间。

    六.具体业务功能

    6.1 打开一个全屏的窗口

    <script type="text/javascript">
    
    window.open("http://google.com/",'新开googleWin',"fullscreen=1")
    
    </script>
    
     

    6.2 使本页面全屏

    解决方案:先打开一个全屏的目标窗口,然后关闭本窗口。

    代码:

    <script type="text/javascript">
    
         var url=document.location.href; //获得本窗口属性名
          newWin=window.open(url,'','fullscreen=1,scrollbars=0');      
          window.opener=null;//出掉关闭时候的提示窗口
          window.open('','_self'); //ie7      
          window.close();
    
    </script>

    注意:如果你在open方法中指定第二个参数,并为他赋予特定的值话,那么第二次使用上面方法,将无法创建新的窗口,因为系统默认的返回已经存在窗口的索引。

    按ESC退出全屏

    <script type="text/javascript">
    
    // Esc退出全屏
          function exitFullScreenMe() 
             { 
                 var esc=window.event.keyCode; 
                 if(esc==27) //判断是不是按的Esc键,27表示Esc键的keyCode. 
                 { 
                  var url=document.location.href;
                  
           win=window.open(url,'','fullscreen=0,directories=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1,titlebar=1,toolbar=1'); //让新打开的窗口全屏                          
           
           window.opener=null;//出掉关闭时候的提示窗口 
           window.open('','_self');//ie7          
           window.close(); //先关闭老的窗口          
                     
                 } 
             } 
             document.onkeydown = exitFullScreenMe ; //当onkeydown(按键触发) 事件发生时调用hotkey函数
    
    </script>

    6.3同时弹出两个窗口

    <script type="text/javascript">
    
    window.open("http://google.com/",'新开googleWin1',"height=300, width=300, top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")
    
    window.open("http://google.com/",'新开googleWin2',"height=300, width=300, top=0, left=400,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")
    </script>

    注意:(1)窗口的名字不能相同,但可以都为空;

    (2)要注意两个窗口的布局,是否符合你的要求。

    6.4

    第一次进入页面才弹出窗口.cookie解决

    首先,将如下代码加入主页面HTML的<HEAD>区:

    <script> 
      function openwin(){ 
      window.open("page.html","","width=200,height=200") 
      } 
      function get_cookie(Name) { 
      var search = Name + "=" 
      var returnvalue = ""; 
      if (document.cookie.length > 0) { 
      offset = document.cookie.indexOf(search) 
      if (offset != -1) { 
      offset += search.length 
      end = document.cookie.indexOf(";", offset); 
      if (end == -1) 
      end = document.cookie.length; 
      returnvalue=unescape(document.cookie.substring(offset, end)) 
      } 
      } 
      return returnvalue; 
      }  
      function loadpopup(){ 
      if (get_cookie('popped')==''){ 
      openwin() 
      document.cookie="popped=yes" 
      } 
      } 
      </script>

    然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进 入该页面,窗口再也不会弹出了。

  • 相关阅读:
    UVa 1349 (二分图最小权完美匹配) Optimal Bus Route Design
    UVa 1658 (拆点法 最小费用流) Admiral
    UVa 11082 (网络流建模) Matrix Decompressing
    UVa 753 (二分图最大匹配) A Plug for UNIX
    UVa 1451 (数形结合 单调栈) Average
    UVa 1471 (LIS变形) Defense Lines
    UVa 11572 (滑动窗口) Unique Snowflakes
    UVa 1606 (极角排序) Amphiphilic Carbon Molecules
    UVa 11054 Wine trading in Gergovia
    UVa 140 (枚举排列) Bandwidth
  • 原文地址:https://www.cnblogs.com/jonson1126/p/3298640.html
Copyright © 2011-2022 走看看