Javascript ParseFromString在IE中抛出错误,但在Chrome中没有

Javascript ParseFromString在IE中抛出错误,但在Chrome中没有,javascript,google-chrome,internet-explorer,domparser,Javascript,Google Chrome,Internet Explorer,Domparser,我正在使用一个KML插件制作传单,它在Google Chrome中非常有效。然而,在IE中,它会在下面的代码中抛出一个错误 parser=new DOMParser(); console.log(url) // outputs: "path/to/kmlfile.kml" in Chrome debugger url=parser.parseFromString(url,"text/xml"); //This line throws a parser error in IE 11, but is

我正在使用一个KML插件制作传单,它在Google Chrome中非常有效。然而,在IE中,它会在下面的代码中抛出一个错误

parser=new DOMParser();
console.log(url) // outputs: "path/to/kmlfile.kml" in Chrome debugger
url=parser.parseFromString(url,"text/xml"); //This line throws a parser error in IE 11, but is fine in Chrome
在我看来,这段代码中似乎有一个错误——作者应该向parser.parseFromString()函数传递一个实际的XML字符串,而不仅仅是XML文档的url。解析器可能会出错,因为文件路径不是有效的XML文件(注意:kml文件只是XML)。然而,这并不会导致在Chrome调试器工具中抛出任何错误,这真的很奇怪

在我看来,这两种情况都应该失败。DOMParser上可靠的MDN文档没有提到将URL作为参数放入parseFromString()中。所以我的问题是,为什么这在Chrome中起作用,但在IE中抛出一个错误,然后我能做些什么来修复它


请注意,此问题与以下url不同,因为这不是一般错误-这是关于在Chrome中工作但在IE中失败的内容:

当XML在非Microsoft浏览器(Firefox、Chrome等)中格式不正确时,它将创建XML文档,并将错误消息作为其内容。点击(
function validateXML(text) {
    var message;
    var parser;
    var xmlDoc;

    // code for Edge, IE, Mozilla, Firefox, Opera, etc.
    if (document.implementation.createDocument || window.DOMParser) {
        parser = new DOMParser();

        try {
            xmlDoc = parser.parseFromString(text, "text/xml");
        }
        catch (error) {

        }

        if (xmlDoc.getElementsByTagName("parsererror").length > 0) {
            return xmlDoc.getElementsByTagName("parsererror")[0];
        }
        else {
            return "No errors found";
        }
    }
    // code for older versions of IE
    else if (window.ActiveXObject) {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";

        try {
            xmlDoc.loadXML(text);
        }
        catch (error) {

        }

        if (xmlDoc.parseError.errorCode != 0) {
            message = "Error Code: " + xmlDoc.parseError.errorCode + "\\n";
            message = message + "Error Reason: " + xmlDoc.parseError.reason;
            message = message + "Error Line: " + xmlDoc.parseError.line;
            return message;
        }
        else {
            return "No errors found";
        }
    }

    else {
        return "Not supported";
    }
}