尝试使用剪贴板 API 来解决这里不起作用:
document.querySelector('#copy').addEventListener('click', e => {
const html = document.querySelector('ul').outerHTML;
const blob = new Blob([html], {type: 'text/html'});
const item = new ClipboardItem({['text/html']: blob});
navigator.clipboard.write([item]).then(() => {
e.target.innerText = 'Copied!';
}, () => {
e.target.innerText = 'Error?';
});
});
<button id="copy">Copy</button>
<ul>
<li>Hello World!</li>
</ul>
您的代码在放入单独的 HTML 文档(您可以在本地测试)而不是 Stack Snippet(在缺乏某些权限的沙盒 iframe 内运行代码)时可以正常工作。