window.open / window.close în JavaScript

Fereastra și navigarea Toate browserele

Deschide o adresă într-o filă sau fereastră nouă și închide ferestrele deschise din cod.

Sintaxă
const fereastra = window.open(url, tinta, caracteristici);
fereastra.close()

Ce face window.open / window.close

window.open(url, "_blank") deschide adresa într-o filă nouă. Al treilea parametru (de exemplu "width=500,height=600") cere o fereastră separată, de tip pop-up. Browserele blochează ferestrele deschise fără o acțiune a utilizatorului, iar atunci metoda returnează null.

Rezultatul este un obiect fereastră; close() pe el închide fereastra. O pagină se poate închide singură cu window.close() doar dacă a fost deschisă din cod. Pentru siguranță, adaugă "noopener" când deschizi site-uri străine.

Parametri

Parametru Descriere
url Adresa deschisă.
tinta Opțional. "_blank" (filă nouă), "_self" sau un nume de fereastră.
caracteristici Opțional. De exemplu "popup,width=500,height=600" sau "noopener".

Ce returnează

Obiectul fereastră nou sau null (blocat sau cu noopener).

Exemple

Exemplul 1: O fereastră de autentificare

document.querySelector("#login-google").addEventListener("click", () => {
  const popup = window.open("/auth/google", "autentificare", "popup,width=500,height=600");
  if (!popup) {
    console.log("pop-up blocat");
    return;
  }
  setTimeout(() => {
    popup.close();
    console.log("închis:", popup.closed);
  }, 60000);
});

Rezultat în browser

închis: true

Greșeli frecvente

  • Deschizi fereastra în setTimeout sau după un await lung. Browserul nu o mai consideră urmarea unui clic și o blochează.

Comenzi înrudite

  • location.reload / assign / replace: Reîncarcă pagina sau navighează la altă adresă, cu sau fără păstrarea paginii curente în istoric.
  • window.postMessage: Trimite mesaje în siguranță între ferestre sau iframe-uri de pe domenii diferite.
  • addEventListener: Rulează o funcție când se întâmplă ceva pe pagină: un clic, o tastă, trimiterea unui formular.