JavaScript window的open和close用法
在JavaScript中,window.open() 和 window.close() 方法分别用于打开和关闭浏览器窗口或标签页。以下是这两个方法的基本用法:
window.open()
window.open() 方法可以接受四个参数:
URL:要打开的网页的地址。如果省略这个参数,或者它的值是空字符串,那么将打开一个新的空白窗口。
窗口名称:一个可选参数,用于指定新窗口的名称。这个名称可以用于window.open()的后续调用,以重用同一个窗口。如果省略这个参数,或者它的值是'_blank',那么每次调用window.open()都会打开一个新的窗口或标签页。
窗口特性:一个可选参数,用于指定新窗口的各种特性(如大小、位置、是否显示滚动条等)。这个参数是一个逗号分隔的字符串,其中每个特性都由一个名称和一个值组成。
是否替换历史记录中的当前条目:一个可选的布尔值参数,用于指定新页面是否应该替换浏览器历史记录中的当前条目。这个参数在现代浏览器中通常不起作用。
示例:
// 打开一个新的空白窗口
var newWindow = window.open();
// 打开一个新的窗口,并指定URL和窗口名称
var anotherWindow = window.open('https://www.example.com', 'exampleWindow');
// 打开一个新的窗口,并指定URL、窗口名称和窗口特性
var features = 'width=400,height=300,left=200,top=200';
var yetAnotherWindow = window.open('https://www.example.com', 'exampleWindow', features);
window.close() 方法用于关闭当前窗口或标签页。但是,出于安全考虑,现代浏览器通常只允许脚本关闭由脚本自身打开的窗口。
示例:
// 关闭当前窗口
window.close();
// 关闭之前打开的窗口
anotherWindow.close();
需要注意的是,由于浏览器的安全限制,window.close() 方法可能无法关闭不是由脚本打开的窗口或标签页。此外,如果用户对浏览器的弹窗设置进行了限制,window.open() 方法可能会失败,并返回null。因此,在使用这些方法时,最好进行错误处理。
window.close(); 关闭不了当前标签页咋办??????
window.close()无法关闭非脚本打开的页面。出于安全考虑,window.close()方法只能关闭由window.open()或者浏览器地址栏直接输入URL打开的页面
1
2
。若需关闭其他类型的页面,可尝试以下方法:
重新打开再关闭:
使用window.open("about:blank","_self").close()或window.open("","_self").close()尝试关闭
针对特定浏览器:
对于Firefox或Chrome,使用window.location.href="about:blank";window.close()
对于其他浏览器,使用window.opener=null;window.open("","_self");window.close()
检查页面打开方式:
如果当前页面不是通过window.open()打开的,考虑改用此方法打开后再关闭
这些方法可能有助于解决window.close()无法关闭当前标签页的问题