我正在尝试创建一个HTML5 contenteditable div,它只接受纯文本。我使用HTML和jQuery如下:HTML5 contenteditable div只接受纯文本
HTML
<div contenteditable="true"></div>
jQuery的
(function() {
$('[contenteditable]').on('paste', function (e) {
e.preventDefault();
var text = null;
text = (e.originalEvent || e).clipboardData.getData('text/plain') || prompt('Paste Your Text Here');
document.execCommand("insertText", false, text);
});
});
但它不工作的所有浏览器。在Internet Explorer浏览器中不支持getData
。我在这里提到了很多解决方案,但没有为我工作。
我也试过
(function() {
$('[contenteditable]').on('paste', function (e) {
e.preventDefault();
var text = null;
if (window.clipboardData && clipboardData.setData) {
text = window.clipboardData.getData('text');
} else {
text = (e.originalEvent || e).clipboardData.getData('text/plain') || prompt('Paste Your Text Here');
}
document.execCommand("insertText", false, text);
});
});
但在这种情况下,document.execCommand("insertText", false, text);
不工作的IE浏览器。
有什么办法可以在过滤HTML标签后接受数据,以便任何人通过类型,粘贴,放置或其他方式将数据输入到可编辑div中。它应该显示为文本。
看看使用这一概念: '$('
嗨,我\ n HTML
“)的.text();'。这应该给你'嗨,我是HTML'。 –我想这是你谈论的不同的事情。在我们的情况下,我们必须获取粘贴的内容。将其转换为纯文本并显示在div中。 – Tarun
我的评论涵盖了“将其转换为纯文本”部分。我没有任何使用JavaScript API的经验,因为您正在尝试做什么,但是当我阅读这个问题时,我很难理解您遇到的问题。例如,“为IE浏览器工作”应该被理解为“不适用于IE?” –