实际场景是这样的:
在数据库中有一段原生markdown文字,在渲染页面的时候附在了一个dom上面:
<initData data-content="#{document.raw_content}">
这里的数据包括形如:
"# 序言\n\n一个幽灵,共产主义的幽灵,在欧洲游荡..."
然后用Javascript去取得这个document.raw_content
,就变成了:
"# 序言
一个幽灵,共产主义的幽灵,在欧洲游荡...
"
多了四个空格……
求解为什么会出现这样的情况……
\n\n
被解析为换行符了,可以用textContent
,而不是innerHTML
,它对HTML标签是剔除不是解析
不知为何会多出几个空格,因为从来没有这么使用过,在我的开发经验中是不允许这样带入大段字符的,存在太多导致问题的因素了。
建议使用DOM不解析的标签包裹,如<pre> <textarea> <script type="xxx">
等形式的都可以