亲测正则没问题,但是好像粘贴事件有什么不对
<div id="edithtml" class="" contenteditable="true" onpaste="this.innerHTML = this.innerHTML.replace(/<(?!img).*?>/g, '')"></div>
亲测正则没问题,但是好像粘贴事件有什么不对
<div id="edithtml" class="" contenteditable="true" onpaste="this.innerHTML = this.innerHTML.replace(/<(?!img).*?>/g, '')"></div>
网上找的这段代码,会在复制时只选择文本
function pasteFilter() {
var e = window.event;
e.preventDefault();
var text = null;
//得到剪贴板中的文本
if (window.clipboardData && clipboardData.setData) {
// IE
text = window.clipboardData.getData('text');
} else {
try {
text = (e.originalEvent || e).clipboardData.getData('text/plain');
} catch (e) {
return;
}
};
if (document.body.createTextRange) {
if (document.selection) {
textRange = document.selection.createRange();
} else if (window.getSelection) {
sel = window.getSelection();
var range = sel.getRangeAt(0);
// 创建临时元素,使得TextRange可以移动到正确的位置
var tempEl = document.createElement("span");
tempEl.innerHTML = "&#FEFF;";
range.deleteContents();
range.insertNode(tempEl);
textRange = document.body.createTextRange();
textRange.moveToElementText(tempEl);
tempEl.parentNode.removeChild(tempEl);
};
textRange.text = text;
textRange.collapse(false);
textRange.select();
} else {
// Chrome之类浏览器
document.execCommand("insertText", false, text);
};
};
13 回答13k 阅读
7 回答2.2k 阅读
5 回答1.5k 阅读
3 回答1.3k 阅读✓ 已解决
5 回答1.7k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
可以在粘贴之后执行