在chrome上添加了额外的div,同时将复制粘贴到contenteditable div中

时间:2015-02-11 05:57:47

标签: javascript jquery html google-chrome contenteditable

我有满足感的div我想要从任何网站复制粘贴时只需要原始文本而不是HTML内容。我得到了一些解决方案并尝试了以下

$('[contenteditable]').on('paste',function(e) {
    e.preventDefault();
    var text = (e.originalEvent || e).clipboardData.getData('text/plain') || prompt('Paste something..');
    window.document.execCommand('insertText', false, text);
});

它工作正常,但问题是它在chrome浏览器中添加了额外的div。

任何想法或更好的解决方案?谢谢!

2 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题,而且它还增加了&等等。我使用下面的正则表达式删除所有的html标签。 当您调用模糊事件时,在函数内部使用以下代码删除标记。即使您将内容复制并粘贴到可编辑的div中,它也可以工作。

x = x.replace(/(<[^\\>]*>|<br\/>|&amp;|amp;|&lt|&gt;)/g, '');
x = x.trim();

希望这就是你要找的东西

答案 1 :(得分:0)

我们可以使用jquery的.text()函数来删除所有HTML标记。

$('[contenteditable]').on('paste',function(e) {
    e.preventDefault();
    var text = $(this).text();

    $(this).text(text);
});