繁体   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