3

次のコードに関する問題を解決しようとしています。

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

問題は、ユーザーがラベル コードをコピーして div 内に貼り付けると、プロパティ「contenteditable='false'」が失われることです。つまり、(コピーされた) 2 番目のラベルは 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 に答える