一、window.open方法的基本介紹
window.open方法是JavaScript中用來打開一個新的窗口或者選項卡的方法,它可以在當前窗口中打開一個新頁面,或者在新的選項卡或者新的窗口中打開頁面。
window.open方法的基本語法如下:
window.open(url, name, features);
其中,url表示打開的頁面的地址,name表示打開頁面的窗口名稱或者選項卡名稱,features表示打開頁面的特性,可以控制新頁面的大小、位置、滾動條、菜單欄等等。
二、打開新頁面的方式
window.open方法可以控制新頁面是在當前窗口打開還是在新的選項卡或者新的窗口中打開。打開新頁面的方式由name參數控制:
1、如果name參數為_blank或者為空,那麼新頁面會在新的選項卡或者新的窗口中打開。
window.open('https://www.baidu.com', '_blank');
2、如果name參數指定了一個窗口的名稱,那麼新頁面會在該名稱指定的窗口中打開。如果該名稱對應的窗口不存在,那麼會創建一個新的窗口。
window.open('https://www.baidu.com', 'baiduWindow');
3、如果name參數為相同的名稱,那麼每次調用window.open方法都會在同一個窗口中打開新頁面,而不是打開多個窗口。
window.open('https://www.baidu.com', 'baiduWindow'); window.open('https://www.google.com', 'baiduWindow');
三、打開頁面的特性
使用features參數可以控制新頁面的大小、位置、滾動條、菜單欄等屬性。特性參數是一個包含了各種屬性的字元串。
1、控制頁面大小
使用width和height屬性可以控制新頁面的大小:
window.open('https://www.baidu.com', 'baiduWindow', 'width=500,height=400');
2、控制頁面位置
使用top和left屬性可以控制新頁面的位置:
window.open('https://www.baidu.com', 'baiduWindow', 'top=100,left=100');
3、控制滾動條
使用scrollbars屬性可以控制新頁面是否顯示滾動條:
window.open('https://www.baidu.com', 'baiduWindow', 'scrollbars=no');
4、控制菜單欄
使用menubar屬性可以控制新頁面是否顯示菜單欄:
window.open('https://www.baidu.com', 'baiduWindow', 'menubar=no');
5、控制工具欄
使用toolbar屬性可以控制新頁面是否顯示工具欄:
window.open('https://www.baidu.com', 'baiduWindow', 'toolbar=no');
四、正確關閉新頁面
打開新頁面的同時,我們也需要考慮如何正確關閉新頁面。
1、使用close方法關閉頁面
在新頁面中,我們可以使用window.close方法來關閉頁面:
window.close();
但是,在瀏覽器中,這個方法只有在新頁面是通過window.open方法打開的,並且新頁面是在同一個域名下時才有效。否則,將會被瀏覽器阻止。
2、使用opener對象關閉頁面
在父頁面中,我們可以通過opener對象來關閉新頁面:
var baiduWindow = window.open('https://www.baidu.com', 'baiduWindow'); baiduWindow.opener = null; baiduWindow.close();
opener對象表示新頁面的父頁面,將opener設置為null之後,我們就可以關閉新頁面了。
五、更多用法
window.open方法還可以用來生成彈窗廣告、彈窗登錄框、彈窗確認框等等。
1、彈窗廣告:
window.open('http://www.example.com/popup.html', 'popup', 'width=600,height=400,scrollbars=yes');
2、彈窗登錄框:
var loginWindow = window.open('http://www.example.com/login.html', 'login', 'width=400,height=300'); loginWindow.onunload = function(){ alert('登錄成功'); };
在登錄頁面中,我們可以使用window.opener來操作父窗口。
window.opener.document.getElementById('username').value = 'John'; window.opener.document.getElementById('password').value = '123456';
3、彈窗確認框:
var result = window.confirm('確定要刪除嗎?'); if (result) { // 執行刪除操作 } else { // 取消刪除 }
六、總結
本篇文章詳細介紹了window.open方法的基本用法,包括打開新頁面的方式、打開頁面的特性、正確關閉新頁面等。同時,我們還介紹了window.open方法的更多用法,如彈窗廣告、彈窗登錄框、彈窗確認框等等。通過本文的學習,您應該已經掌握了window.open方法的使用方法,並可以在實際開發中靈活應用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232118.html