[英]How to preserve onclick when pasted to a contentEditable div
我有一個鏈接和一個contentEditable div。 鏈接具有onclick
屬性。 當我復制鏈接並將其粘貼到contentEditable div中時, onclick
屬性被刪除。 無論如何,要在contentEditable中保留該屬性嗎?
<html> <head> </head> <body> <a href="#" onclick="handleClick()">Click me</a> <div style="border: 1px solid black; min-width: 100px;" contenteditable="true"> </div> <script> function handleClick() { console.log("clicked"); } </script> </body> </html>
瀏覽器會為您剝離事件處理程序以防止XSS。 但是,如果確定可以在粘貼的HTML中保留潛在危險的東西是可以的,則可以自定義onPaste
處理程序:
const editable = document.querySelector('[contenteditable]');
editable.addEventListener('paste', function(event) {
const dataTransfer = event.clipboardData;
const html = dataTransfer.getData('text/html');
document.execCommand('insertHTML', false, html);
event.preventDefault();
});
這僅僅是一個概念證明,並有大量的越多,你需要做的,使這項工作可靠地在不同的瀏覽器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.