在线 HTML 编辑器如何防止无效用户代码导致的错误?

How do online HTML editors prevent bugs from invalid user code?

我构建了一个基于浏览器的 HTML/Markdown 代码编辑器,它似乎在大多数情况下都运行良好。当用户更新代码等时,我有实时渲染预览。我已经清理了任何 <script> 标签,但允许使用其他元素,例如 <div><style>

问题是如果用户使用无效 HTML 保存文档(即未关闭的 <style> 标签等),在重新加载文档时,由于我的原因,整个站点将无法运行HTML 个元素被用户代码中未关闭的标签“吃掉”。

问题:是否有可靠的策略在隔离的容器中呈现用户代码,以便该容器内的错误不会渗入页面的其余部分?

我正在使用 Javascript 和 React。这似乎是 iFrames 的一个用例,但我已经被打败了 iFrames never 一个好主意,并且 always a做你想做的事的更好方法。

Iframe 是此类问题的完美解决方案。过度使用它们可能会在页面上出现问题,但在这种情况下,它是完成这项工作的正确工具。

也不知道为什么会被打成这样,frame 标签总是不好的,但是 iframes 谨慎使用是有用的。