You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在弹出框中显示剪贴板复制文本?原代码报错求助

解决方法:弹窗显示复制到剪贴板的文本

这问题我太熟悉啦!你看到的[object Object]是因为$temp是一个jQuery包装后的DOM对象,不是字符串,直接alert对象的话,JS就会输出它默认的对象描述文本。要弹出复制的内容,你得拿到这个临时输入框里的实际文本值才行。

方案一:先存好要复制的文本(更清晰)

把要复制的文本提前存到变量里,之后既可以用来设置临时输入框的值,也能直接拿来弹窗:

function copyToClipboard(element) {
  // 先获取并存储目标元素的文本
  var copiedText = $(element).text();
  var $temp = $("<input>");
  $("body").append($temp);
  $temp.val(copiedText).select();
  document.execCommand("copy");
  $temp.remove();
  // 弹窗显示复制的文本
  alert(copiedText);
}

方案二:直接获取临时输入框的值

如果你不想额外声明变量,也可以在设置完输入框值后,用$temp.val()拿到文本再弹窗:

function copyToClipboard(element) {
  var $temp = $("<input>");
  $("body").append($temp);
  $temp.val($(element).text()).select();
  // 直接获取临时输入框的文本值弹窗
  alert($temp.val());
  document.execCommand("copy");
  $temp.remove();
}

为什么之前的写法不行?

$("<input>")创建出来的是jQuery对象,它本质上是包裹了DOM元素的集合。当你直接alert这个对象时,JavaScript会自动把它转换为字符串,而对象默认的字符串表示就是[object Object]。只有通过.val()方法,才能提取出输入框里的实际文本内容,也就是你要复制的那段文字。

内容的提问来源于stack exchange,提问作者user2239972

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:17:00