關閉開啟的視窗的方法: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中文網其他相關文章!