畅言跟 editormd 一起使用时的一个小 Bug
🏷️ Editor.md
网站加了畅言的评论之后,发现了一个奇怪的现象。
使用 Markdown 格式写的博客,使用浏览器的后退返回到前一页,然后再点前进回来的时候,文章的内容会变成【来说两句吧...】。
查了一下,这句话来自畅言的配置项(http://changyan.sohu.com/api/2/config/get/
接口的返回值中的 data.main.comment_notice
)。
Markdown 格式博客的转换是在前端使用 editormd.markdownToHTML
函数进行转换的。
该方法执行前其 textarea 的值还是对的,执行后就变成上面那句话了。
Debug 进去之后发现,editormd 是获取 textarea 的 value 值,再将其转化成 HTML 代码的。
而通过浏览器的前进回到该页面时,textarea 的 value 值已经变成了【来说两句吧...】 =。=|||
这个锅肯定是畅言的,因为畅言的评论框也是 textarea 控件,它的 value 值也是这句话。
猜测其赋 value 值的时候循环了页面内的所有 textarea 控件。
由于畅言的 js 代码太多,而且我也没法改,只能修改 editormd.markdownToHTML
函数。
将 textarea 取值的 val()
方法改成了 text()
方法,暂时解决了这个问题。