Internet Explorer gibt möglicherweise nicht dieselbe DISPID für dieselbe Eigenschaft zurück
Wichtig
Die Internet Explorer 11-Desktopanwendung wird für bestimmte Versionen von Windows 10 eingestellt und ab dem 15. Juni 2022 nicht mehr unterstützt.
Sie können mit dem Internet Explorer-Modus in Microsoft Edge weiterhin auf ältere Websites zugreifen, für die Internet Explorer erforderlich ist. Anleitung.
Die Internet Explorer 11-Desktopanwendung wird schrittweise an den schnelleren, sichereren Microsoft Edge-Browser umgeleitet und letztendlich über Windows Update deaktiviert werden. Deaktivieren von IE heute.
Dieser Artikel enthält Informationen zum Auflösen von Internet Explorer, die möglicherweise nicht mit derselben Eigenschaft zurückgegeben DISPID werden.
Ursprüngliche Produktversion: Internet Explorer 9 und höhere Versionen
Ursprüngliche KB-Nummer: 2855169
Problembeschreibung
Imagine ein Szenario, in dem eine Anwendung ein binäres Verhalten verwendet, um eine benutzerdefinierte Eigenschaft zu definieren (nennen wir sie "MyProp"). Das binäre Verhalten ist an ein Element angefügt, das DOM im Internet Explorer 9-Standardmodus oder höher ausgeführt wird. Der Kunde kann auch andere binäre Verhaltensweisen, ActiveX Steuerelemente oder andere Browser-Add-Ins ausführen, die aufrufen, IDispatch::GetIDsOfNames um die DISPID Eigenschaft MyProp aufzulösen. In bestimmten Situationen gibt Internet Explorer nicht immer dasselbe für jeden Anruf zurück, DISPID wenn er im Internet Explorer GetIDsOfNames 9-Standardmodus oder höher ausgeführt wird.
Lösung
Eine Möglichkeit, dieses Problem zu umgehen, besteht darin, zuerst mithilfe der benutzerdefinierten Eigenschaft MyProp JavaScript zuzugreifen, bevor IDispatch::GetIDsOfNames sie von einem Browser-Add-In aufgerufen wird. Ein Beispiel hierfür ist die Verwendung der folgenden Funktion im Onload-Ereignis des Textkörpers der Webseite:
function foo()
{
var a = document.getElementById("myelem"); // myelem is the id of the element which has the attached binary behavior
if (a.myprop == null) // myprop is the property in question
//alert("null");
;
else
//alert("not null");
;
}