JS window.open()属性

摘要:
I Window对象是JavaScript层次结构中的顶级对象。Window对象表示浏览器窗体或框架。Window对象将出现在<身体>或者<框架集>每次出现时,它都是自己主动创建的。2、 open()方法用于打开新的浏览器窗体或查找命名的窗体。open(URL,name,features,replace)参数描述可以

一. 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是否加入文件夹button。默觉得 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>这一句就可以。你能够试着刷新一下这个页面或又一次进 入该页面,窗体再也不会弹出了。

免责声明:文章转载自《JS window.open()属性》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在Ubuntu 20.04 LTS Focal Fossa上安装DelugeVue根据浏览器窗体变化动态设置Element Table组件的最大高度下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JqueryEasyUI 解决IE下datagrid无法刷新的问题

问题描述: 在使用JqueryEasyUI 时,发现在IE下$('#table').datagrid('reload');无效,数据并没有被刷新,究其原因,是因为刷新时,datagrid请求的url没有变化,IE就从浏览器缓存里取数据了,返回的是302响应码。 解决办法: 在$('#table').datagrid('reload');前修改$('#tab...

H5调用手机的相机/摄像/录音等功能 _input:file的capture属性说明

H5使用input标签调用系统默许相机,摄像,录音功能。使用input:file标签, 去调用系统默认相机,摄像,录音功能,其实是有个capture属性,直接说明需要调用什么功能: <input type="file" accept="image/*" capture="camera"> <input type="file" accept...

Python接口自动化-接口基础(一)

一、接口的定义 1.接口是前后端沟通的桥梁,是数据传输通道,包括外部接口、内部接口,内部接口又包括:上层服务与下层 服务接口、同级接口; 2.接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法, 使其能被内部修改而不影响外界其他实体与其交互的方式; 二、接口的分类 1.按用途: 电脑等信息机器硬件组件间的接口...

前端小白之每天学习记录----js简单的组件封装

设计模式:是解决问题的模板 关于设计模式,可以阅读汤姆大叔的博文http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 这里简单介绍两种设计模式: 1.单例模式:单例就是保证一个类只有一个实例       eg:在JavaScript里,实现单例的方式有很多种,其中最简单的一个方式是使用对象...

JS解析XML文件和XML字符串

详细内容请点击 JS解析XML文件 复制代码<script type='text/javascript'>loadXML = function(xmlFile){var xmlDoc=null;//判断浏览器的类型//支持IE浏览器if(!window.DOMParser && window.ActiveXObject){var...

nodejs下function,new function和this的研究

转:http://www.html5china.com/html5-article-3023-1.html 重点我都高亮了! 由于在使用nodejs之前接触js也比较少,最近一直被js的function和new function所困惑,由于两者都可以呈现出面向对象的样子,不知道两者的差别在哪里,就此问题做了一些研究。在研究的过程中发现this指针是个...