Ho bisogno di aprire una nuova finestra sullo sfondo con JavaScript e assicurarsi che l’originale sia ancora focalizzato

Ho una finestra che sto aprendo con una funzione Javascript:

function newwindow() { window.open('link.html','','width=,height=,resizable=no'); } 

Ho bisogno che una volta aperta la nuova finestra, lo stato attivo ritorni alla finestra originale. Come lo posso fare? E dove inserisco il codice – nella nuova finestra o in quella vecchia? Grazie!

Questo è noto come “pop-under” (ed è generalmente disapprovato … ma sto divagando) .. Dovrebbe darti un sacco di cose su google

Probabilmente vuoi fare qualcosa del tipo:

 var popup = window.open(...); popup.blur(); window.focus(); 

Quale dovrebbe riportare lo stato attivo sulla finestra originale (non testata – pizzicata da google). Alcuni browser potrebbero bloccare questa tecnica.

Dopo aver chiamato window.open, puoi provare a usare

 window.resizeTo(0,0); window.moveTo(0,window.screen.availHeight+10); 

in questo modo non è ansible aprire la finestra in background, ma funziona in modo simile. Chrome funziona bene, non ha provato altro browser.

Se la soluzione di Albert non funziona per te e in realtà vuoi che la finestra sia visibile, ma per essere aperta dietro la finestra corrente, puoi provare ad aprire una nuova scheda nella finestra di apertura e chiuderla subito, questo ridurrà l’attenzione a la finestra di apertura.

 window.open('link.html','','width=,height=,resizable=no'); window.open().close(); 

Tuttavia, credo che la seconda finestra si apra in una scheda o che una nuova finestra dipenda dalle impostazioni del browser.

Per favore non usare “pop-under” per il male.

Puoi utilizzare “sfocatura” o “messa a fuoco” per eseguire l’azione richiesta.

“sfocatura”

 function newwindow() { var myChild= window.open('link.html','','width=,height=,resizable=no'); myChild.blur(); } 

“messa a fuoco”

 function newwindow() { window.open('link.html','','width=,height=,resizable=no'); window.focus(); } 

Inserisci il codice nella tua parentWindow (cioè la finestra in cui ti trovi ora)

Entrambi funzioneranno.