2009-08-06 3 views
2

Das ist wirklich komisch.Ich kann Silverlight-Tag in IE nicht lesen!

Hier ist eine einfache Markup

<div id="div1"> 
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="640px" height="480px"> 
    </object> 
</div> 

und Ausführung alert (document.getElementById ("div1") innerHTML-.); zeigt mir

<OBJECT type=application/x-silverlight-2 height=480 width=640 data=data:application/x-oleobject;base64,QfXq3+HzJEysrJnDBxUISgAIAAAlQgAAnDEAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA></OBJECT> 

Firefox oder Google Chrome zeigt mir korrekte Markup. Nur IE (getestet auf IE7) zeigt mich über seltsame Markup.

+0

Ich bin mir nicht sicher, was Sie hier fragen, aber es sollte erwartet werden, dass das Silverlight-Objekt in verschiedenen Browsern unterschiedlich gerendert wird. Dies wird von der Datei Silverlight.JS getan. – PortageMonkey

+0

Warum geben Sie dem Objekttag keine ID? – PortageMonkey

+0

Ich schreibe ein yui Rich-Text-Editor-Plugin, das Silverlight-Inhalt einfügt. Der Editor verwendet iframe inside und kopiert den iframe-Inhalt vor dem Senden in textarea. Und IE Schrauben Markup wie oben. –

Antwort

2

Chrome und Firefox geben in diesem Fall den HTML-Code aus dem Originaldokument zurück.

IE macht das nie, sobald es HTML analysiert und das DOM erstellt hat, verwirft es den ursprünglichen Dokumenttext. Wenn Sie nach innerHTML fragen, wird eine neue HTML-Zeichenfolge erstellt, indem die DOM-Knoten und -Attribute analysiert werden, die im Element enthalten sind.

Manchmal bedeutet dies, dass Sie das Ergebnis der vom Parser und anderen Komponenten des IE vorgenommenen Mutationen sehen. In diesem Fall haben Komponenten in IE, die für die Handhabung von Standortobjekten und möglicherweise Silverlight selbst verantwortlich sind, die Attribute <object> mutiert.