javascript - Contenteditable 中的 HTML 元素?

标签 javascript html

我有一个 contenteditable 标签,我希望我的用户能够在其中输入代码。但是,当我输入 contenteditable 标签时,我的代码显示为文本而不是实际元素。有没有办法让用户在内容可编辑的框中创建一个完整的、有效的 HTML 元素?我知道客户端可以使用 javascript 插入代码,但是无法访问 javascript 的用户怎么办?用户如何在内容可编辑的框中获取代码(例如按钮)?

<p contenteditable="true">Try typing code in here as user, code will only be text...</p>

有没有不用 JQUERY 的 javascript 方法来完成这个?

编辑

我花了很长时间在 Google 上搜索答案,但一无所获。我此时得到的最佳解决方案是@Dekel 对 CKEditor 的评论。如果有另一种解决方案,我想听听。如果没有,我会坚持使用 CKEditor。我没有太多时间,所以我需要快速解决方案。

更多编辑 =D

我最近通过查看@Brandon 的 .replace 答案(它只适用于客户端编码,不适用于用户编码)并修改它以使用用户编码来开发我自己的问题答案。

最佳答案

这不是很漂亮,但如果您只想添加 HTML,您可以让它工作。否则内联编辑器可能效果最好。

var el = document.querySelector('p')
el.addEventListener('blur', function() {
  var map = {amp: '&', lt: '<', gt: '>', quot: '"', '#039': "'"}
  var html = this.innerHTML.replace(/&([^;]+);/g, (m, c) => map[c]);
  this.innerHTML = html;
});
<p contenteditable="true">Try typing <b>code</b> in here as user, code will only be text...</p>

关于javascript - Contenteditable 中的 HTML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41433796/

相关文章:

html - 如何使用 flexbox 将二下对齐

javascript - 在同一页面上添加多个 javascript 图像 slider

javascript - 带有 onblur onfocus 的 echo 形式

javascript - 调用 eval 的 Jest 测试函数

javascript - 滚动时导航栏元素处于事件状态

jquery - 为什么点击后 Bootstrap 菜单消失了?

javascript - 如何从同一类javascript中的方法返回对象数组

javascript - 如何防止双击时在 HTML5 Canvas 外选择文本?

javascript - 同一页面中的两个 ui-view AngularJs

html - 我如何在我的网页中得到这个。我想在我的网页中添加菜单栏