如何使用JS复制HTML元素文本时保留链接
修复富文本(含链接)复制到剪贴板的问题
你的代码核心问题是构造text/html类型的Blob时用了tempElem.innerText——这个属性只会提取纯文本,把所有HTML结构(包括链接标签)都丢了,自然复制后只剩文本。
直接把text/html对应的Blob内容换成tempElem.innerHTML就能保留完整的富文本结构,修正后的代码如下:
const tempElem: HTMLDivElement = document.createElement("div"); tempElem.innerHTML = responseBody; console.log("running clipboard.write()...."); try { navigator.clipboard.write([ new ClipboardItem({ "text/html": new Blob([tempElem.innerHTML], { type: "text/html", }), "text/plain": new Blob([tempElem.innerText], { type: "text/plain", }), }), ]); console.log("Rich text copied to clipboard"); } catch (err) { console.error("Failed to copy: ", err); }
额外提醒:
navigator.clipboard.write()只能在HTTPS环境或者localhost下正常运行,非安全环境会触发权限错误- 保留
text/plain类型是为了兼容那些不支持富文本的粘贴场景,比如记事本这类纯文本编辑器
内容的提问来源于stack exchange,提问作者greg pinakapoging nilalang sa
相关产品推荐
相关产品推荐

