Вы можете сделать это следующим образом:
используйте этот плагин jQuery для событий до и после вставки:
$.fn.pasteEvents = function( delay ) {
if (delay == undefined) delay = 20;
return $(this).each(function() {
var $el = $(this);
$el.on("paste", function() {
$el.trigger("prepaste");
setTimeout(function() { $el.trigger("postpaste"); }, delay);
});
});
};
Теперь вы можете использовать этот плагин;:
$('#txt').on("prepaste", function() {
$(this).find("*").each(function(){
var tmp=new Date.getTime();
$(this).data("uid",tmp);
});
}).pasteEvents();
$('#txt').on("postpaste", function() {
$(this).find("*").each(function(){
if(!$(this).data("uid")){
$(this).removeClass();
$(this).removeAttr("style id");
}
});
}).pasteEvents();
Explaination
Сначала установите uid для всех существующих элементов в качестве атрибута данных.
Затем сравните все узлы события POST PASTE. Таким образом, сравнивая, вы можете идентифицировать только что вставленный, потому что у него будет uid, а затем просто удалить атрибут style / class / id из вновь созданных элементов, чтобы вы могли сохранить старое форматирование.