markdown-it替代方法,用于创建dom元素而不是呈现HTML文本

问题描述 投票:0回答:1

我目前正在使用markdown-it进行网络扩展,以显示可翻译的教程和更改日志。但Mozilla已经进行了安全检查,告诉我使用innerHTML是不安全的。所以我想知道是否有一个JavaScript(理想情况下是TypeScript)降价库可以创建dom元素而不是呈现HTML文本?

javascript typescript markdown
1个回答
0
投票

我发现了一个没有使用eval的问题的解决方法:

// This was the old code:
container.innerHTML = md.render(value);

// This is the new code:
const domParser = new DOMParser();
const doc = domParser.parseFromString(md.render(value), 'text/html');
removeAllChildren(container);
for(let i=0; i<doc.body.childNodes.length; i++)
    container.appendChild(doc.body.childNodes[i]);
© www.soinside.com 2019 - 2024. All rights reserved.