簡體   English   中英

如何清除粘貼上的輸入? 一個小的所見即所得編輯器

[英]How to clean input on paste? A tiny WYSIWYG editor

嘿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,因為它聽起來對我來說更好;)如果可以的話,可以將其刪除。 這樣做:

  • 接受#content的內容
  • 刪除textarea內容並專注於此。
  • 將內容從#content插入文本區域
  • 替換#content的內容,以防它被刪除或替換(這是我測試的一部分,我不知道$self.html($content);現在是否相關。
  • 將焦點放在#content末尾。

placeCaretAtEnd()來自https://stackoverflow.com/a/4238971/460368 ,我對此做了一些修改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM