为什么在 domready 上 document.write(x) 不显示字符串末尾的实体转义?
Why does an entity escape at the end of the string not show up for document.write(x) on domready?
var target = '<p><img alt=\"\" src=\"upfiles\/54591303758197437.jpg\" \/><\/p>'
$(function(){
var x=$('<div/>').text(target).html();
alert(x);
document.write(x)
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我显示包含 html 标签的转义字符串并写入网页。
alertwindow中的转义字符串是对的,但是关闭alertwindow后只能看到(screenshot):
<p><img alt="" src="upfiles/54591303758197437.jpg" /></p
最后一个 >
在哪里?
为什么 <p><img alt="" src="upfiles/54591303758197437.jpg" /></p>
不会出现在网页中?
我在 Chrome 69 (Windows) 上有同样的症状。
按照 MDN 的建议,通过添加 document.close()
调用设法修复了它:
target = '<p><img alt=\"\" src=\"upfiles\/54591303758197437.jpg\" \/><\/p>'
$(function(){
x=$('<div/>').text(target).html();
alert(x);
document.write(x);
document.close();
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
这个令人费解的难题的正确且正式记录的答案在 中。对于寻求快速修复的任何人,只需在字符串末尾附加一个 space,您就会恢复理智。
document.write(x+' ')
var target = '<p><img alt=\"\" src=\"upfiles\/54591303758197437.jpg\" \/><\/p>'
$(function(){
var x=$('<div/>').text(target).html();
alert(x);
document.write(x)
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我显示包含 html 标签的转义字符串并写入网页。
alertwindow中的转义字符串是对的,但是关闭alertwindow后只能看到(screenshot):
<p><img alt="" src="upfiles/54591303758197437.jpg" /></p
最后一个 >
在哪里?
为什么 <p><img alt="" src="upfiles/54591303758197437.jpg" /></p>
不会出现在网页中?
我在 Chrome 69 (Windows) 上有同样的症状。
按照 MDN 的建议,通过添加 document.close()
调用设法修复了它:
target = '<p><img alt=\"\" src=\"upfiles\/54591303758197437.jpg\" \/><\/p>'
$(function(){
x=$('<div/>').text(target).html();
alert(x);
document.write(x);
document.close();
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
这个令人费解的难题的正确且正式记录的答案在
document.write(x+' ')