XML数据源对象(dso)具有HTMLUnknownElement类型,数据绑定没有发生,记录集未定义



我的问题是关于使用Microsoft Edge的旧数据岛。在2019年,我可以使用edge浏览器的数据岛功能。直到2022年6月,当我再次打开笔记本电脑并更新windows 10时,这项工作才中断。现在数据岛在edge或ie浏览器上不起作用。所以我想,当我的代码甚至在ie浏览器和我的页面上的meta标签上都不能工作时,必须对windows 10本身进行重大更新。

为了简化我的问题,我找到了以下简单的HTML示例,用于将XML数据绑定到带有以下链接的Microsoft页面中的表:

https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ms762701 (v = vs.85)。

我还在HTML的头部部分添加了meta标记,以模拟IE7。但是,数据绑定不起作用,并且表字段没有被XML数据填充。据我所知,微软希望下面的xml绑定代码能够正常工作。

当我使用javascript检查XML数据源(dso)的ID xmlMeetings的类型时,该类型显示为objecthtmllunknowelement。但我希望对象是已知的,并具有包括记录集在内的所有方法和属性。我的意图是最终访问记录集,但当然,记录集是未定义的htmllunknowelement,这也是xml会议。

根据微软的说法,IE=EmulateIE7在meta标签中模拟Internet Explorer 7,当使用带有right声明的doctype时。在过去,即使我没有注意doctype的正确声明,我也没有遇到将xml数据绑定到Microsoft edge浏览器中的表的问题。

谁能告诉我:

1-为什么数据绑定到表没有发生?如果发生了数据绑定,那么我希望也能访问记录集。

2-这个HTML页面的文档类型的正确声明是什么?

谢谢你的帮助。

我将以下代码保存在testXML.html文件中,并使用Microsoft edge浏览器和ie11加载页面。没有数据绑定到表。

<HTML><HEAD>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<script type=’text/javascript’>
alert(‘typeof()=’ + typeof(document.getElementById(‘xmlMeetings’))
</script>
</HEAD><TITLE></TITLE>
<BODY>
<XML ID="xmlMeetings">
<?xml version="1.0" ?>
<meetings>
<meeting>
<date>1/1/99</date>
<time>9:00</time>
<location>104</location>
</meeting>
<meeting>
<date>2/1/99</date>
<time>13:00</time>
<location>34</location>
</meeting>
<meeting>
<date>3/1/99</date>
<time>14:30</time>
<location>20</location>
</meeting>
</meetings>
</XML>
<table style='border:1px solid red' datasrc="#xmlMeetings">
<tr>
<td><div datafld="date"></div></td>
<td><div datafld="time"></div></td>
<td><div datafld="location"></div></td>
</tr>
</table>
</BODY>
</HTML>

content="IE=EmulateIE7"仅适用于IE浏览器。它在Edge中不起作用。你可以查看这个文档:

此功能将不会在任何版本的Microsoft Edge中实现。

我认为你有两个选择,如果你想使用边缘:

  1. 使用一些数据孤岛的替代方案。你可以参考这个线程,看看解决方案是否适合你。
  2. 您可以在Edge IE模式下加载站点,使其可以使用content="IE=EmulateIE7"(IE模式需要在客户端配置)。有关Edge IE模式的更多信息,请参考本文档。

最新更新