我们有一个接近10年的asp.net Winforms应用程序,并且在其中使用了一些技术(并且我的人员不再在我的公司工作)。
为了能够在IE10 / 11(更不用说其他浏览器)中运行,我们需要在兼容模式下运行,现在是时候尝试并至少开始解决问题了。
我遇到的第一个问题之一就是使用asp:Repeater
来使用类似......
<asp:Repeater ID="MyRepeater" runat="server"
OnItemDataBound="MyRepeater_ItemDataBound" >
<HeaderTemplate>
<ul class="MyHeader" >
</HeaderTemplate>
<ItemTemplate>
....
<ItemTemplate>
有一些代码可以访问这个DOM元素..
var list = helper.getElementByClassName(this.get_hostElement(), 'MyHeader', 'ul');
不用担心上述调用中的内容(还有),最终的结果是,当处于兼容模式时,如果我们查看结果,如果&#39; list&#39;在IE调试器中,我可以看到..
[object DISPHTMLUListElement]
当没有兼容模式时,结果为
[object HTMLUListElement]
从那里下山,不同类型的子元素(它们也不同于 DISP 前缀),我们还有其他访问函数失败(缺少属性/函数的对象等)< / p>
这里的问题最初的问题是,是否有人知道返回的 DISPHTMLUListElement 和 HTMLUListElement 对象之间的区别?
提前感谢您的帮助!
答案 0 :(得分:0)
第一个是XHTML(又名HTML 4.0)元素(quirk模式); 最后一个是IE 9引入的HTML5元素,具有更多标准功能(边缘模式)。
如果需要,您可以强制执行一种或另一种模式。