0
嗨Stackoverflow社區,如何清理粘貼上的輸入?一個微小的所見即所得編輯器
我已經寫了一個示例代碼,應該清除粘貼HTML代碼,但它不按預期工作。在每個粘貼上覆制<textarea>
並粘貼不起作用。
這裏是的jsfiddle:http://jsfiddle.net/Kxmaf/214/
任何幫助是非常讚賞:)
嗨Stackoverflow社區,如何清理粘貼上的輸入?一個微小的所見即所得編輯器
我已經寫了一個示例代碼,應該清除粘貼HTML代碼,但它不按預期工作。在每個粘貼上覆制<textarea>
並粘貼不起作用。
這裏是的jsfiddle:http://jsfiddle.net/Kxmaf/214/
任何幫助是非常讚賞:)
新版本:http://jsfiddle.net/Kxmaf/218/
你是對setTimeout()
,不知道該貼事件延遲。現在 ,我看到FF,即document.execCommand()
是有點越野車,所以我簡化了很多(沒有更多的精力,將execCommand):
$editor.on('paste, keydown', function() {
var $self = $(this);
setTimeout(function(){
var $content = $self.html();
$clipboard.val($content);
},100);
});
如何:http://jsfiddle.net/Kxmaf/215/
$editor.on('paste, keydown', function() {
var $self = $(this),
$content = $self.html();
$clipboard.val('').focus();
document.execCommand('insertHTML', false, $content);
$self.html($content);
placeCaretAtEnd($self);
});
沒有更多setTimeout()
。 我也加了keydown,因爲它對我來說聽起來更好;)如果你願意的話,你可以刪除它。 這確實:
$self.html($content);
是相關的。placeCaretAtEnd()
來自https://stackoverflow.com/a/4238971/460368我修改了一點。
不幸的是你的榜樣是行不通的。它把內容輸入到該textarea的,但不是到可編輯的div :(textarea就是這樣一個幫手,它應該關注'粘貼'並清除輸入,並將內容放回div。 – Aley
新代碼不能工作:(腳本應該做的是清理剪貼板內容,貼上textarea時應該抓住焦點,瀏覽器將內容粘貼到textarea中,100 ms後textarea中清理過的內容應該被複制回可編輯的div。 – Aley