window.open(url)在新选项卡打开url
如果提供了窗口大小,那么浏览器将打开一个弹窗
window.open('https://javascript.info/')
如果弹窗是在用户触发的事件处理程序(如 onclick
)之外调用的,大多数浏览器都会阻止此类弹窗。
用setTimout浏览器不会阻止
setTimeout(() => window.open('http://google.com'), 1000);
打开一个弹窗的语法是 window.open(url, name, params)
:
- url: 要在新窗口中加载的 URL
- name: 新窗口的名称
- params新窗口的配置字符串。它包括设置,用逗号分隔。参数之间不能有空格
- 位置:
left/top
(数字)—— 屏幕上窗口的左上角的坐标。这有一个限制:不能将新窗口置于屏幕外(offscreen)。width/height
(数字)—— 新窗口的宽度和高度。宽度/高度的最小值是有限制的,因此不可能创建一个不可见的窗口。
- 窗口功能:
menubar
(yes/no)—— 显示或隐藏新窗口的浏览器菜单。toolbar
(yes/no)—— 显示或隐藏新窗口的浏览器导航栏(后退,前进,重新加载等)。location
(yes/no)—— 显示或隐藏新窗口的 URL 字段。Firefox 和 IE 浏览器不允许默认隐藏它。status
(yes/no)—— 显示或隐藏状态栏。同样,大多数浏览器都强制显示它。resizable
(yes/no)—— 允许禁用新窗口大小调整。不建议使用。scrollbars
(yes/no)—— 允许禁用新窗口的滚动条。不建议使用。``javascript let params =
scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no, width=0,height=0,left=-1000,top=-1000`;
- 位置:
open(‘/‘, ‘test’, params);
`open` 调用会返回对新窗口的引用
```javascript
let newWin = window.open("about:blank", "hello", "width=200,height=200");
newWin.document.write("Hello, world!");
弹窗可以使用 window.opener
属性访问 opener 窗口
let newWin = window.open("about:blank", "hello", "width=200,height=200");
newWin.document.write(
"<script>window.opener.document.body.innerHTML = 'Test'<\/script>"
);
关闭一个窗口:win.close()
。
检查一个窗口是否被关闭:win.closed
。
let newWindow = open('/', 'example', 'width=300,height=300');
newWindow.onload = function() {
newWindow.close();
alert(newWindow.closed); // true
};