首頁 > web前端 > js教程 > 主體

window.open如何關閉開啟的視窗

DDD
發布: 2023-12-06 14:15:30
原創
1805 人瀏覽過

關閉開啟的視窗的方法:1、使用“window.close”關閉新視窗;2、使用“window.location”重定向;3、使用“window.blur”和“window.focus” ;4、使用「window.history」回退;5、使用「window.opener」。

window.open 是 JavaScript 中用來開啟新視窗或新分頁的函數。然而,由於瀏覽器的安全限制,你不能直接從新視窗或選項卡返回到原始視窗或選項卡,也不能直接關閉新視窗或選項卡。這是為了防止惡意腳本在使用者不知情的情況下關閉視窗或標籤。

然而,你可以透過一些方法間接地關閉新視窗或標籤。以下是幾種可能的方法:

1. 使用window.close 關閉新視窗

雖然你不能直接關閉由window.open 開啟的新窗口,但你可以在新視窗中呼叫window.close 函數來關閉它。例如:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.close();
登入後複製

請注意,只有由 window.open 開啟的視窗才能關閉。瀏覽器通常不允許腳本關閉非腳本開啟的視窗。此外,瀏覽器可能會阻止腳本關閉包含 window.close 的窗口,除非這個腳本是在窗口的沙盒環境中運行的,或者窗口是透過 window.open 開啟的。

2. 使用window.location 重定向

你可以透過在新視窗的網址列中輸入新的URL 來重定向到新的頁面,從而間接地關閉新視窗。例如:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.location = 'https://www.example2.com';
登入後複製

在這個範例中,新視窗會被重定向到新的 URL,從而間接地關閉了原來的視窗。請注意,這種方法可能會給用戶帶來不良體驗,因為它會改變瀏覽器的焦點。

3. 使用 window.blur 和 window.focus

你可以嘗試讓新視窗失去焦點,然後再重新獲得焦點,這可能會關閉它。例如:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.blur();  // 失去焦点  
setTimeout(function() {  
    window.focus();  // 重新获得焦点  
}, 0);
登入後複製

這種方法可能並不總是有效,因為瀏覽器的實作可能會有所不同。此外,這種方法可能會給用戶帶來不良體驗,因為它會改變瀏覽器的焦點。

4. 使用 window.history 回退

你可以嘗試使用 window.history 物件的 back() 方法來回退到上一個歷史記錄條目。這可能會關閉新視窗或選項卡。例如:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.history.back();
登入後複製

請注意,這種方法可能會為使用者帶來不良體驗,因為它會改變瀏覽器的歷史記錄。此外,這種方法可能並不總是有效,因為瀏覽器的實作可能會有所不同。

5. 使用 window.opener

如果你是在新視窗中開啟的,那麼你可以使用 window.opener 屬性來存取原始視窗。然後你可以在原始視窗中呼叫 window.close() 來關閉新視窗。例如:

在原始視窗中:

var newWindow = window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
newWindow.close();  // 关闭新窗口
登入後複製

請注意,這種方法可能會給使用者帶來不良體驗,因為它需要使用者手動關閉新視窗。此外,由於瀏覽器的安全限制,這種方法可能並不總是有效。

以上是window.open如何關閉開啟的視窗的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板