Heim  >  Artikel  >  Web-Frontend  >  window.openSo schließen Sie ein geöffnetes Fenster

window.openSo schließen Sie ein geöffnetes Fenster

DDD
DDDOriginal
2023-12-06 14:15:301777Durchsuche

Methoden zum Schließen eines geöffneten Fensters: 1. Verwenden Sie „window.close“, um das neue Fenster zu schließen; 2. Verwenden Sie „window.location“ zum Umleiten; 3. Verwenden Sie „window.blur“ und „window.focus“; . Verwenden Sie „window.history“ als Ersatz. 5. Verwenden Sie „window.opener“.

window.open ist eine Funktion in JavaScript, die ein neues Fenster oder einen neuen Tab öffnet. Aufgrund von Browser-Sicherheitseinschränkungen können Sie jedoch nicht direkt von einem neuen Fenster oder Tab direkt zum ursprünglichen Fenster oder Tab zurückkehren oder das neue Fenster oder den neuen Tab direkt schließen. Dadurch soll verhindert werden, dass bösartige Skripte Fenster oder Tabs ohne Wissen des Benutzers schließen.

Es gibt jedoch Möglichkeiten, neue Fenster oder Tabs indirekt zu schließen. Hier sind mehrere mögliche Methoden:

1. Verwenden Sie window.close, um das neue Fenster zu schließen.

Obwohl Sie das durch window.open geöffnete neue Fenster nicht direkt schließen können, können Sie die Funktion window.close im neuen Fenster aufrufen. Schließe es. Zum Beispiel:

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

Bitte beachten Sie, dass nur durch window.open geöffnete Fenster geschlossen werden können. Browser lassen im Allgemeinen nicht zu, dass Skripte Fenster schließen, die nicht von Skripten geöffnet wurden. Darüber hinaus verhindern Browser möglicherweise, dass ein Skript ein Fenster schließt, das window.close enthält, es sei denn, das Skript wird in der Sandbox-Umgebung des Fensters ausgeführt oder das Fenster wurde über window.open geöffnet.

2. Verwenden Sie die window.location-Umleitung

Sie können auf eine neue Seite umleiten, indem Sie eine neue URL in die Adressleiste des neuen Fensters eingeben und so das neue Fenster indirekt schließen. Zum Beispiel:

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

In diesem Beispiel wird das neue Fenster auf die neue URL umgeleitet, wodurch indirekt das ursprüngliche Fenster geschlossen wird. Beachten Sie, dass dieser Ansatz möglicherweise zu einer schlechten Erfahrung für den Benutzer führt, da er den Fokus des Browsers ändert.

3. Verwenden von window.blur und window.focus

Sie können versuchen, dafür zu sorgen, dass das neue Fenster den Fokus verliert und dann wieder fokussiert wird, wodurch es möglicherweise geschlossen wird. Zum Beispiel:

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

Dieser Ansatz funktioniert möglicherweise nicht immer, da die Browserimplementierungen variieren können. Darüber hinaus kann dieser Ansatz zu einer schlechten Erfahrung für den Benutzer führen, da er den Fokus des Browsers ändert.

4. Verwenden Sie window.history, um zurück zu gehen.

Sie können versuchen, die back()-Methode des window.history-Objekts zu verwenden, um zum vorherigen Verlaufseintrag zurückzukehren. Dadurch wird möglicherweise das neue Fenster oder die neue Registerkarte geschlossen. Zum Beispiel:

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

Bitte beachten Sie, dass diese Methode zu einer schlechten Erfahrung für den Benutzer führen kann, da sie den Browserverlauf ändert. Darüber hinaus funktioniert dieser Ansatz möglicherweise nicht immer, da die Browserimplementierungen variieren können.

5. Verwenden Sie window.opener

Wenn Sie es in einem neuen Fenster geöffnet haben, können Sie die Eigenschaft window.opener verwenden, um auf das ursprüngliche Fenster zuzugreifen. Anschließend können Sie das neue Fenster schließen, indem Sie window.close() im Originalfenster aufrufen. Zum Beispiel:

Im ursprünglichen Fenster:

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

Bitte beachten Sie, dass dieser Ansatz für den Benutzer zu einer schlechten Erfahrung führen kann, da er das neue Fenster manuell schließen muss. Darüber hinaus funktioniert diese Methode aufgrund von Sicherheitseinschränkungen des Browsers möglicherweise nicht immer.

Das obige ist der detaillierte Inhalt vonwindow.openSo schließen Sie ein geöffnetes Fenster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn