簡體   English   中英

粘貼到contentEditable div時如何保留onclick

[英]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.

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