我有一个满足的元素,当我粘贴一些文本时,它会保留格式
我也可以粘贴没有格式的文本:
<script>
$('#divedit').bind('paste', function(e){
$('#textarea').focus();
setTimeout(function(){
var text = $('#textarea').val();
$('#textarea').val('');
$('#divedit').focus();
document.execCommand('insertHTML', false, text);
}, 10);
});
</script>
但我想保留除font-family和color之外的格式。
这可能吗?
答案 0 :(得分:0)
您可以使用TreeWalker遍历每个Element节点并删除不想保存的样式。
如果您只是出于性能原因想要浏览粘贴的节点,那么您可以像使用textarea一样使用另一个contenteditable
元素来捕获粘贴的内容,然后在节点之后遍历节点。粘贴,然后使用innerHTML
和insertHTML
,或者如果您不想重新创建它们,请将其从粘贴捕获器移动到编辑器。
您可能还想在当前光标/选区中放置一些元素,以便在将元素焦点更改为另一个textarea
/ contenteditable
以捕获粘贴时可以将其还原。 Window.getSelection会帮助您解决此问题。