提问人:shawn 提问时间:6/25/2022 最后编辑:shawn 更新时间:6/29/2022 访问量:96
XML 数据源对象 (dso) 的类型为 HTMLUnknownElement,并且不会发生数据绑定,并且记录集未定义
XML data source object (dso) has type HTMLUnknownElement and data binding does not happen and recordset is undefined
问:
我的问题是关于将旧数据岛与Microsoft Edge一起使用。2019 年,我可以在边缘浏览器上使用数据岛功能。直到 2022 年 6 月,当我再次打开笔记本电脑并更新了 Windows 10 时,我才被这项工作打断了。现在,数据岛在边缘或IE浏览器上不起作用。因此,我想当我的代码即使在 Internet Explorer 和我的页面上的 meta 标记上也不起作用时,必须对 Windows 10 本身进行重大更新以模拟 IE7。
为了简化我的问题,我找到了以下简单的 HTML 示例,用于将 XML 数据从具有此链接的 Microsoft 页面绑定到表:
https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ms762701(v=vs.85)。
我还在 HTML 的 head 部分添加了 meta 标记,用于模拟 IE7。但是,数据绑定不起作用,并且 XML 数据不会填充表字段。据我所知,Microsoft 希望以下 xml 绑定代码正常工作。
当我使用 javascript 检查作为 XML 数据源 (dso) 的 ID 的 xmlMeetings 的类型时,该类型显示为 Object HTMLUnknowElement。但我希望该对象是已知的,并且具有所有方法和属性,包括记录集。我的目的是最终访问记录集,但当然,对于 HTMLUnknowElement(即 dso 或 xmlMeetings)来说,记录集是未定义的。
根据Microsoft的说法,当使用具有正确声明的文档类型时,meta标记中的IE=EmulateIE7模拟Internet Explorer 7。过去,即使我没有注意文档类型的正确声明,我在将 xml 数据绑定到 Microsoft Edge 浏览器中的表时也没有问题。
谁能告诉我:
1- 为什么没有发生 DSO 数据绑定到表?如果发生数据绑定,那么我希望也可以访问记录集。
2- 此 HTML 页面的文档类型的正确声明是什么?
谢谢你的帮助。
我将以下代码保存在 testXML.html 文件中,并使用 Microsoft 边缘浏览器和 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 中实现。
如果你想使用Edge,我认为你有两个选择:
- 使用一些数据岛的替代解决方案。您可以参考此线程,看看解决方案是否适合您。
- 您可以在 Edge IE 模式下加载站点,以便它可以使用(需要在客户端配置 IE 模式)。有关Edge IE模式的更多信息,请参阅此文档。
content="IE=EmulateIE7"
评论