Fred: window.focus() und IE8

Ich habe das Problem, dass im IE8 die Funktion window.focus() nicht wie in IE7 oder FF (mit "Fenster vor oder hinter andere Fenster legen" aktiviert) funktioniert.

folgendes Minimalbeispiel:

  
<head>  
<title>Focussing</title>  
<script type="text/javascript">  
var nw = new Object();  
var aw = new Array( "Ja", "Bitte", "Du hast gerufen", "Ich eile" );  
  
function onw()  
{  
nw = window.open("", "Zweitfenster", "width=300,height=400,left=100,top=200");  
nw.document.write( "<p>Ich bin ein neues Fenster!<p>" );  
// nw.focus();  
}  
  
function fnw()  
{  
try  
{  
x = Math.round(Math.random() * 100 ) % aw.length;  
setTimeout("nw.focus()",2000);  
nw.document.write( "<p>"+aw[x]+" Meister!<p>" );  
}  
catch( e )  
{  
onw();  
};  
}  
</script>  
</head>  
  
<body>  
<a href="javascript:onw()">Neues Fenster</a><br/>  
<a href="javascript:fnw()">Hol's nach vorn!</a>  
</body>  
</html>  

Klick auf "Neues Fenster" öffnet das Fenster
Klick auf "Hol's nach vorn!" schreibt einen Text ins Fenster und soll es in den Vordergrund befördern.
Im IE8 wird der Text ins 2. Fenster geschrieben und danach beginnt das Icon des neuen Fensters in der Taskleiste zu blinken. Sonst passiert nichts.

Wo liegt der Fehler?
Wie kann ich die gewünschte Funktionalität erreichen?
oder welche Alternativen gibt es?

  1. Yerf!

    Im IE8 wird der Text ins 2. Fenster geschrieben und danach beginnt das Icon des neuen Fensters in der Taskleiste zu blinken. Sonst passiert nichts.

    Wo liegt der Fehler?

    Ich hätt jetzt gesagt: an deinen Einstellungen von Windows. Das ein Fenster sich nicht automatisch den Fokus holen kann, sondern nur in der Taskleiste blinkt ist zumindest ein Feature von Windows (frag mich aber jetzt nicht, wo man das evtl. konfigurieren kann).

    Gruß,

    Harlequin

    --
    <!--[if lt IE 8]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
    1. Yerf!

      »» Im IE8 wird der Text ins 2. Fenster geschrieben und danach beginnt das Icon des neuen Fensters in der Taskleiste zu blinken. Sonst passiert nichts.
      »»
      »» Wo liegt der Fehler?

      Ich hätt jetzt gesagt: an deinen Einstellungen von Windows. Das ein Fenster sich nicht automatisch den Fokus holen kann, sondern nur in der Taskleiste blinkt ist zumindest ein Feature von Windows (frag mich aber jetzt nicht, wo man das evtl. konfigurieren kann).

      Gruß,

      Harlequin

      Es geht hier zunächst um IE8 unter Windows XP Pro. Ich habe dem Problem schon einige Zeit gewidmet, vor allem in Suchmaschinen. Das Resultat war sehr dürftig.

      1. Hi,

        bitte zitiere vernünftig!

        Ich hätt jetzt gesagt: an deinen Einstellungen von Windows. Das ein Fenster sich nicht automatisch den Fokus holen kann, sondern nur in der Taskleiste blinkt ist zumindest ein Feature von Windows (frag mich aber jetzt nicht, wo man das evtl. konfigurieren kann).

        So ist es.

        Es geht hier zunächst um IE8 unter Windows XP Pro. Ich habe dem Problem schon einige Zeit gewidmet, vor allem in Suchmaschinen. Das Resultat war sehr dürftig.

        http://pcsupport.about.com/od/windowsxp/ht/stealingfocus01.htm
        http://pcsupport.about.com/od/windowsxp/ht/stealingfocus02.htm

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. http://pcsupport.about.com/od/windowsxp/ht/stealingfocus01.htm
          http://pcsupport.about.com/od/windowsxp/ht/stealingfocus02.htm

          Vielen Dank,

          ForegroundLockTimeout auf 0 setzen und das Script funktioniert im IE8 wie gewünscht.
          Leider ist diese Lösung nicht komfortabel und lässt sich bei Kunden nicht durchsetzen. Besser wäre eine Einstellung im IE8, analog dem FF, um die Registryeinstellung zu umgehen. Leider finde ich dazu nichts.

          mfg
          Fred

  2. Hi,

    nw.document.write( "<p>Ich bin ein neues Fenster!<p>" );

    BTW: Du mußt das Dokument auch schließen, wenn Du mit der Ausgabe fertig bist!

    Gruß, Cybaer

    --
    Zweck des Disputs oder der Diskussion soll nicht der Sieg, sondern der Gewinn sein.
    (Joseph Joubert, Schriftsteller)