Auf einer Webseite kann der Fokus in Internet Explorer 9 möglicherweise nicht mehr angezeigt werden

Dieser Artikel enthält Informationen zum Beheben von Webseiten Problemen, die sich nicht auf Internet Explorer 9 konzentrieren können.

Original Version des Produkts:   Internet Explorer 9
Ursprüngliche KB-Nummer:   2600156

Problembeschreibung

Eine Webseite oder ein ActiveX-Steuerelement, das auf einer Webseite gehostet wird, kann beim Anzeigen mit Internet Explorer 9 nicht mehr den Fokus erhalten. Die Steuerelemente werden möglicherweise deaktiviert angezeigt, oder der Fokus landet möglicherweise in der Adressleiste, wenn ein Benutzer auf die Seite klickt, um zu versuchen, den Fokus zu erhalten. Dieses Problem kann sich auf alle Benutzeroberflächenelemente auf der Seite auswirken, die den Fokus erhalten können.

Ursache

Das Problem tritt auf, weil das Registerkartenfenster von der Eingabewarteschlange des Frame-Fensters getrennt wird. Microsoft hat bestätigt, dass dies ein Problem in Internet Explorer 9 im Zusammenhang mit der Funktionsweise des Hang Widerstandes ist.

Lösung

Die Behebung dieses Problems ist in Internet Explorer kumulativen Update ms11-099 (KB 2618444) oder einem Internet Explorer kumulativen Update ab verfügbar.

Es gibt verschiedene Möglichkeiten, um dieses Problem zu umgehen:

  1. Vermeiden Sie es, lange ausgeführte blockierende Anrufe auszuführen oder synchrone arbeiten an einem Benutzeroberflächen Thread durchführen, der potenziell die Nachrichten Pumpe des Threads stören kann.

  2. Erstellen Sie den folgenden Registrierungsschlüsselwert, um das Feature zum Aufhängen Widerstand zu deaktivieren:

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\
    Type: REG_DWORD
    Name: HangRecovery
    Value: 0
    

    Das Hang Resistance-Feature ist in Internet Explorer 9 standardmäßig aktiviert. Durch Festlegen des HangRecovery Werts wird 0 dieses Feature deaktiviert; festlegen, dass es 1 aktiviert werden soll.

  3. Vermeiden Sie das Aufrufen von AttachThreadInput oder anderen APIs, die potenziell zu einer Änderung des Besitzers für das Registerkartenfenster führen können, da sich diese APIs auf die Eingabewarteschlange des Registerkarten Threads auswirken. Ein Beispiel für eine API, die am Ende die Eingabewarteschlange des Registerkarten Threads ändern kann, ist SetWindowLong.