You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现点击按钮复制GET表单查询参数至剪贴板并获取GET查询值?

没问题,这两个需求其实都挺容易实现的,我分两部分给你讲清楚:

一、获取GET查询参数的值

现代浏览器里用URLSearchParams就能轻松搞定,不用自己去手动解析URL字符串。举个实际例子:
假设当前页面URL是https://your-site.com?share_code=abc123&from=jkaw,要获取share_code的值,代码可以这么写:

// 获取当前URL的查询参数部分
const params = new URLSearchParams(window.location.search);
// 获取指定参数的对应值
const shareCode = params.get('share_code'); // 这里会返回"abc123"

// 如果需要遍历所有参数,也可以这么做
params.forEach((value, key) => {
  console.log(`${key}: ${value}`);
});

要是你需要兼容非常老的浏览器(比如IE11及以下),可以自己写个简单的解析函数,但现在绝大多数场景下URLSearchParams完全够用了。

二、将参数值复制到剪贴板(带点击按钮)

现在浏览器支持的navigator.clipboard API是最安全可靠的复制方式,搭配按钮的点击事件就能实现需求。我给你写个完整的可运行示例:

1. HTML结构(包含按钮和显示参数的黑框)

<!-- 黑框用来展示要复制的参数值 -->
<pre id="paramDisplay" style="background: #2d2d2d; color: #f0f0f0; padding: 10px; border-radius: 4px;">abc123</pre>
<!-- 复制按钮 -->
<button id="copyBtn">复制参数到剪贴板</button>

2. JavaScript逻辑

// 获取页面元素
const copyBtn = document.getElementById('copyBtn');
const paramDisplay = document.getElementById('paramDisplay');

// 绑定按钮点击事件
copyBtn.addEventListener('click', async () => {
  try {
    // 方式一:直接复制从URL获取到的查询参数值
    const params = new URLSearchParams(window.location.search);
    const shareCode = params.get('share_code');
    await navigator.clipboard.writeText(shareCode);
    
    // 方式二:如果要复制黑框里显示的内容,替换成下面这行
    // await navigator.clipboard.writeText(paramDisplay.textContent.trim());
    
    alert('复制成功!');
  } catch (err) {
    console.error('复制失败:', err);
    alert('复制失败,请手动复制');
  }
});

这里有两个小细节要注意:

  • navigator.clipboard需要在HTTPS环境下才能正常工作(本地开发的localhost也属于安全环境,没问题)
  • async/await是因为writeText是异步操作,你也可以换成.then()的链式写法

这样组合起来,用户点击按钮就能把指定的GET参数(或者黑框里的内容)一键复制到剪贴板了。

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

火山引擎 最新活动