这真的很奇怪。
这是一个简单的标记
<div id="div1">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="640px" height="480px">
</object>
</div>
并执行alert(document.getElementById(“div1”)。innerHTML);告诉我
<OBJECT type=application/x-silverlight-2 height=480 width=640 data=data:application/x-oleobject;base64,QfXq3+HzJEysrJnDBxUISgAIAAAlQgAAnDEAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA></OBJECT>
Firefox或谷歌浏览器显示正确的标记。只有IE(在IE7上测试过)才能显示出奇怪的标记。
答案 0 :(得分:2)
在这种情况下,Chrome和Firefox会返回原始文档提供的html。
IE从未这样做过,一旦解析了HTML并创建了DOM,它就会丢弃原始文档文本。当你要求innerHTML时,它通过分析元素中保存的DOM节点和属性来构造一个新的HTML字符串。
有时这意味着您将看到解析器和IE的其他组件所做的突变的结果。在这种情况下,IE中负责处理被选对象的组件以及可能的Silverlight本身已经改变了<object>
属性。