Google Chrome hat die Unart, offene Fenster bei nochmaligem öffnen nicht in den Vordergrund zu bringen - er ladet zwar den Inhalt neu lässt das Fenster aber im Hintergrund. Wenn man viel in Intranet-Applikationen arbeitet die noch keine hübschen Ajax-Fensterspielerein haben nervt das gewaltig wenn man immer via Taskleiste das Popup in den Vordergrund holen muss.
Ein Workaround ist ziemlich einfach, es muss nur dem bestehende Popup-Fenster der Fokus (den es eigentlich nicht mehr hat) entzogen und wieder zugewiesen werden.
win=window.open(location, name, options);
win.focus();
wird ersetzt ergänzt durch ein .blur()
win=window.open(location, name, options);
win.blur();
win.focus();
Um das kurze Flimmer zu verhindern kann man abfragen ob ein Fenster bereits existiert und entsprechend damit umgehen; allerdings benötigt man dann die Fensterreferenz global.
if(typeof(win)!='undefined' && !win.closed) {
win.blur();
} else {
win=window.open(location, name, options);
}
win.focus();
Hinweis: dieser Artikel ist ursprünglich auf dem IT-Blog “copy/paste” (www.copypaste.at) erschienen.