首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从contentEditable div中删除格式

从contentEditable div中删除格式
EN

Stack Overflow用户
提问于 2011-08-01 22:10:11
回答 9查看 40.5K关注 0票数 34

我有一个contentEditable分区,我想删除任何格式,特别是为了复制和粘贴文本。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-08-01 22:35:14

你试过使用innerText吗?

添加:

如果您想从粘贴到可编辑div中的内容中剥离标记,可以尝试一下创建临时div的老方法--参见下面的示例。

代码语言:javascript
复制
<!DOCTYPE html>
<html>

<head> 
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  <title>Strip editable div markup</title>

  <script type="text/javascript">
    function strip(html) {
      var tempDiv = document.createElement("DIV");
      tempDiv.innerHTML = html;
      return tempDiv.innerText;
    }
  </script>
</head>

<body>
  <div id="editableDiv" contentEditable="true"></div>
  <input type="button" value="press" onclick="alert(strip(document.getElementById('editableDiv').innerText));" />
</body>

</html>
票数 30
EN

Stack Overflow用户

发布于 2016-04-26 00:38:51

代码语言:javascript
复制
document.querySelector('div[contenteditable="true"]').addEventListener("paste", function(e) {
        e.preventDefault();
        var text = e.clipboardData.getData("text/plain");
        document.execCommand("insertHTML", false, text);
    });

这很简单:向"paste“事件添加一个侦听器,并重新格式化剪贴板内容。

下面是body中所有容器的另一个示例:

代码语言:javascript
复制
[].forEach.call(document.querySelectorAll('div[contenteditable="true"]'), function (el) {
    el.addEventListener('paste', function(e) {
        e.preventDefault();
        var text = e.clipboardData.getData("text/plain");
        document.execCommand("insertHTML", false, text);
    }, false);
});

干杯。

票数 49
EN

Stack Overflow用户

发布于 2015-01-29 19:14:55

我寻找这个问题的答案已经很久了,最后写了我自己的。

我希望这对其他人有帮助。在写这篇文章的时候,它似乎可以在ie9,最新的chrome和火狐上运行。

代码语言:javascript
复制
<div contenteditable="true" onpaste="OnPaste_StripFormatting(this, event);" />

<script type="text/javascript">

    var _onPaste_StripFormatting_IEPaste = false;

    function OnPaste_StripFormatting(elem, e) {

        if (e.originalEvent && e.originalEvent.clipboardData && e.originalEvent.clipboardData.getData) {
            e.preventDefault();
            var text = e.originalEvent.clipboardData.getData('text/plain');
            window.document.execCommand('insertText', false, text);
        }
        else if (e.clipboardData && e.clipboardData.getData) {
            e.preventDefault();
            var text = e.clipboardData.getData('text/plain');
            window.document.execCommand('insertText', false, text);
        }
        else if (window.clipboardData && window.clipboardData.getData) {
            // Stop stack overflow
            if (!_onPaste_StripFormatting_IEPaste) {
                _onPaste_StripFormatting_IEPaste = true;
                e.preventDefault();
                window.document.execCommand('ms-pasteTextOnly', false);
            }
            _onPaste_StripFormatting_IEPaste = false;
        }

    }

</script>
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6899659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档