Skip to content

畅言跟 editormd 一起使用时的一个小 Bug

🏷️ Editor.md

网站加了畅言的评论之后,发现了一个奇怪的现象。

使用 Markdown 格式写的博客,使用浏览器的后退返回到前一页,然后再点前进回来的时候,文章的内容会变成【来说两句吧...】。

查了一下,这句话来自畅言的配置项(http://changyan.sohu.com/api/2/config/get/ 接口的返回值中的 data.main.comment_notice)。

Markdown 格式博客的转换是在前端使用 editormd.markdownToHTML 函数进行转换的。
该方法执行前其 textarea 的值还是对的,执行后就变成上面那句话了。

Debug 进去之后发现,editormd 是获取 textareavalue 值,再将其转化成 HTML 代码的。
而通过浏览器的前进回到该页面时,textareavalue 值已经变成了【来说两句吧...】 =。=|||

这个锅肯定是畅言的,因为畅言的评论框也是 textarea 控件,它的 value 值也是这句话。
猜测其赋 value 值的时候循环了页面内的所有 textarea 控件。

由于畅言的 js 代码太多,而且我也没法改,只能修改 editormd.markdownToHTML 函数。
textarea 取值的 val() 方法改成了 text() 方法,暂时解决了这个问题。