gpt4 book ai didi

javascript - XMLHttpRequest 之后的innerHTML 在 IE9 上不起作用

转载 作者:行者123 更新时间:2023-12-02 16:03:23 25 4
gpt4 key购买 nike

我有下面的黑色代码,它在 Chrome 和 Firefox 上运行得很好,但每次在 IE 上都失败,它在控制台选项卡中返回“未定义”。

<html>
<head>
<script type="text/javascript" charset="utf-8" src="/js/jquery-latest.js"></script>

<script>
$(document).ready(function()
{

test();

});


function test()
{

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","/xml/products.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var list = xmlDoc.getElementsByTagName("product");
console.log(list[0].childNodes[1].innerHTML);

}
</script>
</head>
</html>

我使用的 XML 如下:

感谢您的宝贵时间。

编辑:jQuery ajax 版本也不起作用:

var xmlDoc;     
$.ajax({
type: "GET",
url: "/xml/products.xml",
dataType: "xml",
success: function (xml) {
xmlDoc = xml;
var list=xmlDoc.getElementsByTagName("product");
console.log(list[1].childNodes[1].innerHTML );
}
});

最佳答案

不知道为什么这在 Chrome 和 FF 中有效,实际上不应该1

您正在加载 XML 文档,并成功选择 XML 元素节点。它们没有 innerHTML 属性2。您应该使用 XMLSerializer如果您确实需要获取 xml 文档的标记(也许您只是在寻找 .textContent?)。

var el = list[0].childNodes[1];
console.log(new XMLSerializer().serializeToString(el));

但是,oldIE 甚至不知道这一点,您需要为它们使用 el.xml3

1:至少在旧版本中不是。另请参阅does innerHTML work with XML Elements? .
2:显然,DOM 解析规范现在包含一个通用的 innerHTML attribute在所有 DOM 元素上
3:参见JavaScript: Replacement for XMLSerializer.serializeToString()?

关于javascript - XMLHttpRequest 之后的innerHTML 在 IE9 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com