【问题标题】:html entities in a javascript alert?javascript警报中的html实体?
【发布时间】:2013-02-18 13:11:24
【问题描述】:

我有一个来自 XML 的字符串(我无法编辑),我想通过 javascript 中的警报打印它。

我的字符串示例:

This is à string

我需要在警报中打印:

This is à string

有js html解码吗?

【问题讨论】:

  • 你需要展示一段代码来演示这个值是如何从 XML 进入 JS 的。
  • 我从 C# 中的 XmlReader 得到它
  • 如果你使用jquery,这个问题告诉你stackoverflow.com/questions/1147359/…

标签: javascript html encoding entities


【解决方案1】:

即使没有 jquery,您也可以将字符串放在 dom 元素中并再次读取它: https://stackoverflow.com/a/3700369/1986499

根据最近的需求进行编辑,以包含来自另一个 SO 答案的一些代码:

var div = document.createElement('div');
div.innerHTML = encoded;
var decoded = div.firstChild.nodeValue;

【讨论】:

  • 问题重复并不意味着您应该发布仅链接的答案。
【解决方案2】:
var encoded = "This is à string";
var decoded = $("<div/>").html(encoded).text();
alert(decoded);

【讨论】:

  • 这个答案没有提到的是,尽管没有用它标记问题,你需要 jQuery 库才能使用这个答案。如果没有 jQuery,你会遇到一个可爱的 DOMException 错误。
【解决方案3】:

我只是晚了一点,但以防万一其他人通过谷歌找到这个(就像我一样),我想我会改进Imperativeanswer .

function showbullet() {
  var tempelement = document.createElement('div');
  tempelement.innerHTML = "&bull;";
  alert("Here, have a bullet!\n" + tempelement.innerHTML);
}
showbullet();

我已经对此进行了测试并确认它可以在 Chrome/43.0.2357.130 m 中运行;火狐/32.0.1; Internet Explorer/9.0.8112.16421。没有必要胡乱处理 nodeValue 之类的东西;分配完成后,实体将被其关联的字符替换。 (但是请注意,alert(tempelement.innerHTML="&amp;bull;"); 在我测试的任何浏览器中都工作!)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 2012-03-09
    • 1970-01-01
    • 2011-04-11
    相关资源
    最近更新 更多