在div中复制粘贴 - contenteditable

时间:2012-05-30 00:38:31

标签: css copy-paste contenteditable

我正在尝试解决有关以下代码的问题:

<div contenteditable="true">
    <label contenteditable='false'>Tag1</label>
</div>

问题是当用户将标签代码复制并粘贴到div中时,它会丢失属性“contenteditable ='false'”。这意味着,第二个标签(已复制)不再是contenteditable = false。

我知道如何解决这个问题?

我尝试了以下css代码,但它不允许用户删除标记。

-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
user-select: none;

我也发现了Sanitaze,但我认为它太多代码可以解决这个问题......

感谢

1 个答案:

答案 0 :(得分:1)

您可以通过在粘贴后放回“contenteditable = false”属性来解决此问题:

$(document).bind("input", function(e){
    $(".uneditable").attr("contenteditable", "false");
});​

(这假定标签有一个“不可编辑”的类。我使用“输入”事件而不是“粘贴”事件,因为它在粘贴后(而不是之前)生效,并且它涵盖了一些其他操作,例如拖放文字。)

jsFiddle:http://jsfiddle.net/DYKbB/3/