0

<xml>我在文件的标签中有一个 XML 字符串,.jsp我正在尝试xml使用xmldoc.Load(document.all("Info"))它加载它,但它给出了错误

Invalid procedure call or argument

但在 Ie9 中一切正常。当我检查 document.all("Info") 它说

Object UnknownHTMLElement在 IE 10 和 IE9 中的对象。

这是我使用的代码片段

var xmldoc=new ActiveXObject("MSXML2.DOMDocument.3.0");
boolXMLLoaded=xmldoc.load (document.all("UserInfo"))
    <xml id=UserInfo>`
<?xml version='1.0'?><RESPONSES UserName="  DOUGLAS  ................
</xml>

任何帮助是极大的赞赏..

4

2 回答 2

0

您的代码在较新的 IE 版本中不起作用的原因是因为您使用的是过时的(非常非常过时的)代码。如果您希望现代浏览器(包括 IE10)能够正常工作,则需要更新到现代 Web 标准。

两个问题立即显而易见:

  1. document.all已弃用多年;你不应该使用它——它是非标准的,并且仍然存在以允许与旧版本的 IE(例如 IE5)向后兼容。现代 IE 版本不会喜欢它,而且它绝对不能在 IE 以外的浏览器上运行。

    在大多数情况下,如果您尝试通过 ID 引用元素(如本例所示),则应document.getElementById()改为使用。

    来自Mozilla 开发者网络的更多信息。

  2. new ActiveXObject("MSXML2.DOMDocument.3.0")也是非标准和不推荐使用的,也不应该在现代浏览器中使用。同样,它是特定于 IE 的,并且从 IE7 开始被替换为 Web 标准替代方案。

    您应该将其替换为document.implementation.createHTMLDocument();. 另请参阅此处的答案。

    如果您需要支持 IE6 或更早版本,则可以检测浏览器是否支持标准语法,并仅为旧 IE 版本提供回退到旧 ActiveX 控件。

鉴于您向我们展示的一小段代码正在使用两个明显且众所周知的功能,这些功能已经严重过时,如果我们看到更多您的代码,我希望看到更多类似性质的问题. 因此,我建议您在 SO 的姊妹网站https://codereview.stackexchange.com/上发布您的一些代码,以获得有关如何改进它的额外反馈。

希望有帮助。

于 2013-04-22T08:15:57.767 回答
0
var xmldoc= new ActiveXObject("Microsoft.XMLDOM");

将其替换为

var xmldoc=new ActiveXObject("MSXML2.DOMDocument.3.0");

再试一次

于 2016-02-01T15:13:17.837 回答