如何通过Clipboard API获取HTML格式的剪贴板内容?
如何从剪贴板获取HTML格式文本
你当前用的navigator.clipboard.readText()确实只能读取纯文本。要获取HTML格式的剪贴板数据,得用navigator.clipboard.read()方法——它能返回包含多种格式数据的ClipboardItem集合,你可以从中筛选出HTML格式内容。
以下是实现代码:
navigator.clipboard.read() .then(clipboardItems => { for (const item of clipboardItems) { // 检查是否存在HTML格式的数据 if (item.types.includes('text/html')) { item.getType('text/html') .then(html => { console.log('获取到的HTML内容:', html); // 此处可对HTML内容做后续处理,比如插入页面 }) .catch(err => { console.error('读取HTML内容失败:', err); }); break; } } }) .catch(err => { console.error('读取剪贴板失败:', err); });
注意事项:
- 该API需要在HTTPS环境下使用(本地开发的
localhost除外)。 - 必须获得用户明确授权,浏览器会弹出权限请求弹窗。
- 只有当用户复制的内容本身包含HTML格式时,才能读取到对应数据;若复制的是纯文本,依然只能获取纯文本内容。
内容的提问来源于stack exchange,提问作者Erasersharp
相关产品推荐
相关产品推荐

