回答
UPDATE:
所有的主流瀏覽器現在給你訪問到剪貼板中的數據粘貼事件。如果您需要支持舊瀏覽器,請參閱Nico Burns's answer以查看較新瀏覽器的示例,並查看Tim Down's answer。
您可以偵聽div上的onPaste事件來檢測粘貼。如果你只是想禁用粘貼,你可以從該監聽器調用event.preventDefault()
。
但是,要捕獲粘貼的內容會有點困難,因爲onPaste
事件不會讓您訪問粘貼的內容。處理這種情況通常的方法是從做onPaste
事件處理程序如下:
- 創建一個虛擬的div並將其放置在窗口邊界之外,所以它不是可見的遊客
- 將焦點移到該div
- 呼叫使用
setTimeout(sanitize, 0)
,並從你的消毒方法消毒劑方法:
- 找到虛擬股利和獲得它的內容
- 消毒HTML和刪除DIV
- 將焦點移回到原來的div
- 插入消毒的內容在原來的div
The 'paste'事件在某些瀏覽器中做這種重定向已經太遲了,但總的想法起作用。 –
這是另一個非常流行的解決方案,已經過測試跨瀏覽器http://stackoverflow.com/questions/2176861/javascript-get-clipboard-data-on-paste-event-cross-browser – yoshyosh
- 1. 在內容可編輯div
- 2. 內容可編輯div編輯問題
- 3. 檢查內容可編輯內容
- 4. 如何檢測通過鍵盤編輯contenteditable DIV的子元素?
- 5. HTML5內容可編輯的DIV焦點
- 6. html中可編輯的div內容4
- 7. 在內容可編輯div(特定)獲取當前的div id
- 8. 從內容可編輯div中刪除?
- 9. 使內容在DIV不可編輯
- 10. 作出跨度內contenteditable div不可編輯
- 11. IOS:你如何檢測用戶對內容編輯DIV
- 12. 如何設置html內容固定寬度的可編輯div
- 13. 如何編輯contentEditable div中的鏈接
- 14. 強制小寫內容/ HTML的contenteditable div
- 15. 如何閱讀contentEditable div的內容?
- 16. MVC剃刀編輯器模板ContentEditable DIV
- 17. 使div中的內容不可編輯(可點擊)
- 18. 可編輯div下的可拖動內容?
- 19. 強制contenteditable內容div或p
- 20. 如何檢索可在jQuery中編輯的div內容的行尾?
- 21. 使用jQuery檢測div中的內容
- 22. 如何檢測div內容的高度?
- 23. contenteditable div在webkit中實際上不可編輯
- 24. Contenteditable div在離子iOS應用程序中不可編輯
- 25. WYSIWYG編輯器在div上使用contenteditable有多可靠?
- 26. 內容當文本編輯器彈出時,可編輯的光標位置在可編輯的div中
- 27. CKEditor的 - 編輯CONTENTEDITABLE格之外編輯
- 28. GWT設置內容編輯DIV
- 29. contenteditable用ckEditor進行內聯編輯
- 30. 內容可編輯屬性對div內容呈現不正確的效果
會是什麼有用的將是一個基金會在發生粘貼事件之前捕獲粘貼事件,進行消毒,然後將安全內容注入到可編輯的內容中,而不會丟失光標位置。想法? –
IE,Safari和Chrome允許訪問剪貼板中的數據,但您必須爲Firefox提供一個解決方法。如果可行的話,更簡單的辦法是隻允許粘貼,然後在事實之後清理整個元素的內容。這會起作用嗎? – sdleihssirhc
有一個哈希的方式來做到這一點,我以前發佈:http://stackoverflow.com/questions/2176861/javascript-get-clipboard-data-on-paste-event-cross-browser/2177059#2177059,http ://stackoverflow.com/questions/4365833/how-can-i-get-the-text-that-is-going-to-be-pasted-in-my-html-text-editor/4365862#4365862 –