小编use*_*633的帖子

javascript:IE 10中的xml到字符串

我正在努力使这个非常古老的Web应用程序现代化以适应现代浏览器,我遇到了IE 10的一个问题.最终,我必须将XML文档转换为字符串:

function xmlToString(xmlElement)
{
     if (document.evaluate)
     {
          var serializer = new XMLSerializer()
          var strXml = serializer.serializeToString(xmlElement)
     }
     else
          var strXml = xmlElement.xml
}
Run Code Online (Sandbox Code Playgroud)

第一个if块用于Firefox和Chrome; 工作正常.else之后的行是Internet Explorer.它适用于8和9但不是10(它必须适用于所有3).从我收集到的,这是因为IE 10从以前的微软处理xml的方式转移到更接近标准的方式.但是,我还没有找到IE 10中的.xml属性的替代品呢?

有谁知道如何在IE 10中将XML文档转换为字符串?

谢谢.

编辑:因此这里问题的实际原因是在IE 10中xmlElement.xml的值是未定义的.此外,它没有将xml文档转换为字符串; 该属性已经是xml文档的字符串表示形式.仍然需要弄清楚如何在IE 10中执行此操作.

编辑2:所以我找到了答案,但显然我不允许在几个小时内实际回答我自己的问题,所以生病了,现在就把它复制到这里:

AAA当然,我发帖后大约5分钟,我终于找到了正确的问题来问Google ... -_-

无论如何,IE 9及以上版本支持XMLSerializer,因此需要弄清楚如何在不疏远任何必要浏览器的情况下检测该功能.这个页面向我展示了一种检测javascript功能的绝佳方法.

这是最终的代码,适用于IE 8和10以及最新的Chrome和Firefox:

function xmlToString(xmlElement)
{
    if (typeof XMLSerializer == 'function')
    {
        var serializer = new XMLSerializer()
        var strXml = serializer.serializeToString(xmlElement)
    }
    else
        var strXml = xmlElement.xml
}
Run Code Online (Sandbox Code Playgroud)

最后一行仍然必须在IE 8上工作

javascript xml internet-explorer-10

5
推荐指数
1
解决办法
3283
查看次数

javascript 替换 < 与 < 产生 $lt;?

我正在尝试使用 javascript 替换函数将 html 实体 < 转换为 < ,就像这样

text = text.replace(/&lt;/g, "<");
text = text.replace(/&gt;/g, ">");
Run Code Online (Sandbox Code Playgroud)

初始文本看起来像这样:

&lt;img /&gt;
Run Code Online (Sandbox Code Playgroud)

我试图让它看起来像这样:

<img />
Run Code Online (Sandbox Code Playgroud)

但是,当我运行上面的代码时,我得到......:

$lt;img />
Run Code Online (Sandbox Code Playgroud)

有趣的是,替换 > 符号效果很好,但是替换 < 符号会产生完全意想不到的结果(那个 $ 符号到底是从哪里来的???)。

我还应该指出,如果我在替换函数中的 < 之前添加一个空格,如下所示:

text = text.replace(/&lt;/g, "< ");
Run Code Online (Sandbox Code Playgroud)

它产生这个:

< img />
Run Code Online (Sandbox Code Playgroud)

不幸的是,它并没有像我想要的那样被解析为 HTML...

编辑:如果有帮助的话,我正在执行此操作的文本是 XMLHttpRequest 的responseText。

javascript replace xmlhttprequest

2
推荐指数
1
解决办法
3743
查看次数