当文本显示在broswer页面上时,字符得到逃脱
characters getting un-escapped when the text is shown on the broswer page
有一些从服务器获取的内容显示在浏览器的新页面上。例如,内容为
"Apple & Orange"
但是当它在网页代码中呈现时
function writeConsole(content,idx) {
top.consoleRef=window.open('','myconsole' + idx,
',menubar=0'
+',toolbar=1'
+',status=0'
+',scrollbars=1'
+',resizable=1');
top.consoleRef.document.writeln(
'<html><head><title> Generated Content </title></head>'
+'<body bgcolor=white onLoad="self.focus()">'
+ '<textarea rows="500" cols="500">'
+ content
+ '</textarea>'
+'</body></html>'
);
top.consoleRef.document.close();
}
它被渲染为
"Apple & Orange"
为什么会发生这种情况?我需要按原样显示字符串。我应该做什么改变来实现这个目标?我需要保留这些转义字符。
文档。writeln期望它的输入是HTML,所以你的内容被视为这样,这包括转换实体引用,如&
或<
到&
和<
。毕竟,您希望将<title>
视为标记而不是某些<
符号,对吗?
有很多方法可以解决你的问题。您可以做的一种可能性是使用DOM方法在单独的传递中插入文本内容。这样你就不必处理html转义问题了。
top.consoleRef.document.close();
var doc = top.consoleRef.document;
var textarea = doc.getElementsByTagName('textarea')[0];
textarea.value = "Apple & Orange";
或者,您可以html转义内容字符串以将其转换为"Apple &amp; Orange"
,这就是在原始html文档中编写"Apple & Orange"
的方式。
相关文章:
- 在JavaScript中输出转义字符
- 不同浏览器中的空白字符正则表达式行为
- Regex匹配除“”之外的所有字符;.js”;
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 使用RegExp查找url中的字符
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 允许在文本框中使用某些字符
- 根据页面的位置突出显示文本中的字符
- 元素的内容必须由格式正确的字符数据或标记组成
- 如何将字符串拆分为字符,但在javascript中保留空格
- 使用Google Maps API向标记添加多个字符
- 逃脱了单一角色的介绍人,而不是实际角色
- 处理JSON字符串会导致JavaScript错误
- 单元格的工具提示或标题不显示超过2000个字符
- javascript替换换行符和特殊字符
- angularjs删除动态形式元素中的特殊字符
- 元素名称上带有短划线 (-) 字符的 Json 对象
- 无法呈现js unicode字符“u1F310”
- 当文本显示在broswer页面上时,字符得到逃脱