在我们的应用程序中,我们处理粘贴的内容,然后将其插入到可信的div中.在Firefox和Chrome中,粘贴event.clipboardData.getData有两个键text/plain和text/html.在Safari中,它有大约12个键,范围从文本到RTF,但不包括用户粘贴在其中任何一个中的HTML.如何从粘贴事件中访问它?
$( 'div' ).on( 'paste', function( aEvent ) {
var evt = aEvent.originalEvent;
var text = evt.clipboardData.getData( 'text/plain' );
var html = evt.clipboardData.getData( 'text/html' );
var i, len;
console.log( 'text=' + text );
console.log( 'html=' + html );
console.log( 'data types=' );
console.log( evt.clipboardData.types );
for ( i = 0, len = evt.clipboardData.types.length; i < len; i++ ) {
console.log( evt.clipboardData.types[ i ] + '=' + evt.clipboardData.getData( evt.clipboardData.types[ i ] ) );
}
});
Run Code Online (Sandbox Code Playgroud)
突出显示两个段落,复制它们,然后粘贴到新行并观察控制台.
[编辑]如果我从复制事件中使用Rangy的range.toHtml,我可以保存所选内容的快照.在粘贴事件中,我首先检查剪贴板,然后检查我保存的片段,然后回退到文本.理想情况下,我希望尽可能让剪贴板API工作.
| 归档时间: |
|
| 查看次数: |
2181 次 |
| 最近记录: |