js window.open()属性

    技术2022-05-19  16

    一. 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 οnlοad="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进 入该页面,窗口再也不会弹出了。

     

    本文来自博客,转载请标明出处:http://blog.csdn.net/vastskyjoe/archive/2009/04/25/4122104.aspx


    最新回复(0)