我可以在JavaScript中禁用输出转义吗?

时间:2012-02-22 11:46:07

标签: javascript

我意识到这个问题的标题可能不准确,但我想知道如何使用XSLT中的东西来清理Javascript中的字符。例如,我有一个JSON,我用它来提取某些信息,其中一个是酒店名称。问题是酒店的名字中有撇号,例如乔治酒店。当我在Chrome或Firefox中显示它时,它工作正常,但在IE8中它给我george's

我的代码是:

var hotel_title = j.data.hotels[i].title 

我试过了:

var zz = escape(hotel_title);

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

或者:

  • 您的文档是HTML

    Chrome和Firefox试图通过将'呈现为'而不应该(因为'是XML - 因此XHTML - 不是 HTML),但实际上它只是令人困惑。通过不用'替换实体,IE的行为正常。

或者:

  • 您的文档是XHTML

    IE未正确检测到此情况,因此未使用'替换该实体。


您可能的两种解决方案是:

  • 将文档明确设置为XHTML,而不是HTML

    (如果您想支持旧IE,则不理想)

  • 停止从源中发送数据';只需在你的JSON中写'

    (你应该这样做)

答案 1 :(得分:0)

您的JSON中的字符串是否已经过html编码?如果是,则需要将其分配给某个对象的innerHTML属性。如果没有,请将其分配给innerText

答案 2 :(得分:-2)

一个简单的解决方案是

var elt = document.createElement("div");
elt.innerHTML = yourString;
unescapedString = elt.textContent;