javascript - 在写Hexo Theme / 在Hexo的博客内容被渲染时中,如何不让HTML字符串被转义?
PHPz
PHPz 2017-04-11 10:37:28
[JavaScript讨论组]

我在为Hexo写一个主题。

获取博文的内容(用markdown语法写的):
var blogStr =

我是p

'

Hexo的文章模板页(用jade/pug写的):

-str = '

我是新的p

' p#articlep #{str}

页面显示:

我期待的是就像 innerHTML 属性那样,传入的有标签名的话,浏览器会分析然后相应地做处理,而不是这样直接全部用字符串显示出来。

试过在jade/pug模板里用 document.cerete('p').innerHTML = str
报错:

Cannot read property 'createElement' of undefined
PHPz
PHPz

学习是最好的投资!

全部回复(1)
怪我咯

hexo的引擎不怎么熟悉,但是对于你的情况,很明显是因为<>之类的特殊字符被转义了。
转码之后,你的这段HTML描述将会被当作纯粹的字符串,而不会进行渲染。
想要让浏览器对这些东西进行渲染,你需要把你经过markdown解析之后的内容,把码转回来。

这东西很简单的:

str.replace(/&amp;/g, '&')
    .replace(/&lt;/g, '<')
    .replace(/&gt;/g, '>')
    .replace(/&quot;/, '"')
    .replace(/&#39;/, '\'');
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号