javascript - 停止在 contenteditable div 中粘贴 html 样式,只粘贴纯文本

标签 javascript css

我正在使用一个 contenteditable div,当我试图粘贴带有样式的东西时,它应该只复制纯文本,但它也有样式,有没有人知道如何强制它转换为纯文本我贴一下或者谁有更好的解决方案

这是我的代码:

    <div contenteditable="true">   
      This text can be edited by the user. 
    </div>

enter image description here enter image description here

最佳答案

当您粘贴丰富内容时,它会显示为丰富内容。因此,您需要捕获粘贴事件、阻止默认操作并从剪贴板读取文本。

var ce = document.querySelector('[contenteditable]')
ce.addEventListener('paste', function (e) {
  e.preventDefault()
  var text = e.clipboardData.getData('text/plain')
  document.execCommand('insertText', false, text)
})
  [contenteditable] {
    background-color: black;
    color: white;
    width: 400px;
    height: 200px;
  }
<div contenteditable="true"></div>

<div>
  <h1>Test content</h1>
  <p style="color:red">Copy <em>this</em> <u>underlined</u></p>
</div>

关于javascript - 停止在 contenteditable div 中粘贴 html 样式,只粘贴纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58980235/

相关文章:

javascript - 验证单个表单的特定字段是否存在各种选择框更改 - jQuery

javascript - 谓词 Angular 2 上的过滤数组

javascript - 最新 Kendo 版本的页面加载缓慢问题

css - 无法使用 tailwind css 使图像响应

css - 为什么 Rails 将按钮的 CSS 类添加为 URL 参数?

javascript - WSO2 ESB 5 中的动态 json-eval 表达式

javascript - jQuery Mobile 多重过滤方法 - 文本/输入和选择/下拉菜单

html - 在 Angular 模板中对齐 2 个 <ul> block

javascript - 我们可以使用 += 来转换 :rotate( 'x' deg); css property via Javascript

jquery - 打开软键盘时获取视口(viewport)高度