3

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

<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的信息,但我认为解决此类问题的代码太多。

谢谢

4

1 回答 1

1

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

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

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

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

于 2012-05-30T01:23:53.933 回答