我最近在使用 Chrome 和其他浏览器时遇到了同样的问题。但是,最近,我发现此代码在某些浏览器的 contenteditable 字段中有效:
clipboard = e.originalEvent.clipboardData;
clipboard.setData('text/plain', plainData);
clipboard.setData('text/html', htmlData);
注意:在这种情况下,e 是复制和/或剪切事件。此事件触发并且可在onCopy()
oronCut()
操作中检索。
此代码已确认可在以下浏览器的最新版本中运行:
- Chrome(PC/Mac 和 Android)
- Android 4.4+ WebView(只要您从 Play 商店更新)-> Android 开发者的好消息
- 火狐
- Safari(仅限 Mac)
Internet Explorer 似乎可以使用window.clipboardData.setData
,但请记住,IE 剪贴板只会接受'text'
和'url'
数据。
虽然以下浏览器可以访问系统剪贴板对象,但它们无法使用以下方式将数据设置到剪贴板clipboard.setData
:
- 微软边缘
- 而是将
UntrustedDragDrop
对象放入剪贴板...
- 此外,当它不起作用时,setData 返回 true...。setData 在所有其他浏览器中返回 undefined
- Android WebView -> 4.4 以下
- iOS Safari 和 WebView - 是的 iOS!