コンテンツの編集可能なdivが与えられます。貼り付けイベントを検出し、貼り付けが挿入されないようにして、貼り付けを傍受してサニタイズしてテキストのみを含めるにはどうすればよいですか?
また、ペースト+サニタイズが完了した後にフォーカスを失いたくありません。
更新:
すべての主要なブラウザで、貼り付けイベントでクリップボードデータにアクセスできるようになりました。新しいブラウザの例については Nico Burnsの回答 を参照してください。古いブラウザをサポートする必要がある場合は Tim Downの回答 も確認してください。
Divで onPaste イベントをリッスンして、貼り付けを検出できます。貼り付けを無効にするだけの場合は、そのリスナーからevent.preventDefault()
を呼び出すことができます。
ただし、onPaste
イベントでは貼り付けられたコンテンツにアクセスできないため、貼り付けられたコンテンツをキャプチャするのは少し難しいです。これを処理する通常の方法は、onPaste
イベントハンドラーから次のことを行うことです。
setTimeout(sanitize, 0)
を使用してサニタイザーメソッドを呼び出しますそしてあなたの消毒方法から: