window对象的open方法
阅读数:219 评论数:0
跳转到新版页面分类
html/css/js
正文
一、window.open方法
window.open(pageURL,name,parameters)
返回的是新打开的窗口的引用,即该窗口的window对象,不过引用的window对象并不具备完整的dom属性和方法,仅仅提供了访问该页面的一些基本属性和方法。
blur() | 手动移除窗口的焦点方法 |
close() | 关闭该窗口的方法 |
closed | 标识该窗口是否已经被关闭 |
frames | 新窗口内的frames |
length | 新窗口内frames的数量 |
location | 新窗口window的location对象,用于访问窗口的地址信息 |
opener | 该窗口的打开者 |
parent | 该窗口的父窗口 |
postMessage | 通信接口,通过该方法可以实现向新窗口发送消息,优势是支持跨越 |
top | 当前窗口的项级窗口 |
1、pageURL
要打开的页面的URL地址。
2、name
该参数只是一个窗口标识,并不是窗口的标题,用于以后通过它来找到对应的窗口的引用。
该参数除了支持普通的名字外,还支持和a标签一样的特殊关键字:_self、_blank、_parent和_top,分别用于在当前窗口、空白窗口、父窗口、项级窗口中打该窗口,具本的行为参考a标签的target属性。
当传入了已经使用过的窗口的名字时,不会打开一个窗口,而是在名字对应的窗口中打开,该窗口之前加载的内容会被替换。
如果总想打开新页面,可以传_blank。
3、parameters
alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后 |
alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上 |
depended | yes/no | 是否和父窗口同时关闭 |
height | pixel value | 窗口高度 |
width | pixel value | 窗口的像素宽度 |
hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键 |
innerHeight | pixel value | 窗口中文档的像素高度 |
innerWidth | pixel value | 窗口中文档的像素宽度 |
location | yes/no | 位置栏是否可见 |
menubar | yes/no | 菜单栏是否可见 |
outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度 |
outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度 |
resizable | yes/no | 窗口大小是否可调整 |
screenX | pixel value | 窗口距屏幕左边界的像素长度 |
screenY | pixel value | 窗口距屏幕上边界的像素长度 |
scrollbars | yes/no | 窗口是否可有滚动栏 |
titlebar | yes/no | 窗口题目栏是否可见 |
toolbar | yes/no | 窗口工具栏是否可见 |
z-look | yes/no | 窗口被激活后是否浮在其它窗口之上 |
二、通信问题
使用window.open打开窗口时,新窗口和原窗口之间是可以实现双向通信的。
1、在不跨域的情况下
(1)新窗口通过window.opener可以找到原窗口的window。
// 查找原窗口内的p元素
let p = document.querySelectorAll('p',
window.opener.document);
(2)原窗口可以直接通过window.open的返回值访问新窗口。
由于新窗口的加载是异步的,因此不能在调用window.open之后立即访问该窗口,可以在窗口的onload事件内访问新窗口。
let ref = window.open('/index.html');
ref.onload = function(){
... // 与新窗口通信
}
2、在跨域的情况下
由于受到浏览器的跨域安全策略的限制,此时就要通过window.postMessage实现页面之间的通信。
(1)在原窗口
let ref = window.open('https://www.baidu.com');
ref.postMessage(data, '*');
(2)在新窗口
window.opener.postMessage(data, '*');
相关推荐
一、script标签属性
async
表示立即下载该脚本,但不妨碍页面中的其他操作,只对外部文件有效。
charset
与src属性一起使用,告诉浏览器用来编码这个javascript程序的
ECMAscript 5添加了第二种运行模式:严格模式(strict mode)。
//针对单个脚本
<script>
"use strict";
console.log("这是严格模式
一、window对象
在javascript中,一个浏览器窗口就是一个window对象,window对象以及这些子对象,由于都是用于操作浏览器窗口,所以我们又称为BOM(Browser Object
Math.random()方法会返回介于0(包含)~1(不包含)之间的一个随机数。
舍掉小数点后的数值的方法有很多,如parseInt(),Math.ceil(),Math.flo
一、概述
所有语言中的代理,其本实现的是对原对象的操作的拦截和一些自定义行为。
二、语法
const p = new Proxy(target, handler)
1、target
可以是任何类型的
一、概述
函数实际上是对象,每个函数都是Function类型的实例,而且与其他引用类型一样具有属性和方法,因此函数名实际上也是一个指向函数对象的指针,因为函数名是指针,所以js没有函数重载。
func
navigator.language 属性返回一个表示浏览器当前语言环境的字符串,通常是一个 BCP 47 语言标签。这个语言标签由两个部分组成:语言代码和可选的地区代码。
下面是一个示例代码,展示了
一、概述
页面加载完成有两种事件:
1、ready事件
表示文档结构已经加载完成(不包含图片等非文字媒体文件)
2、onload事件
指示页面包含图片等文件在内的所有元素都加载完成。
二、jQuery