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

如何提取URL子串填充输入框并实现点击复制到剪贴板功能

实现方案

仅需修改index.js文件代码即可,原有HTML结构、CSS样式无需调整,可同时满足两项需求:

  • 页面加载时自动从当前访问URL提取code参数对应的值,填充到复制输入框
  • 点击复制按钮可将输入框内的授权码复制到系统剪贴板,保留原有复制成功的提示动效

修改后的完整index.js代码

window.addEventListener('DOMContentLoaded', () => {
    const copyTextWrapper = document.querySelector(".copy-text");
    const codeInput = copyTextWrapper.querySelector("input.text");
    const copyButton = copyTextWrapper.querySelector("button");

    // 提取URL中的code参数值
    const pageUrl = window.location.href;
    let authCode = '';
    // 兼容?code=xxx(标准查询参数格式)和/code=xxx(路径后直接拼接参数格式)两种URL形式
    const codeMatchResult = pageUrl.match(/[?/]code=([^&]+)/);
    if (codeMatchResult?.[1]) {
        authCode = codeMatchResult[1];
        codeInput.value = authCode;
    }

    // 绑定复制按钮点击事件
    copyButton.addEventListener("click", async () => {
        const targetValue = codeInput.value.trim();
        if (!targetValue) return;

        try {
            // 现代浏览器优先使用标准异步剪贴板API,无选中输入框的突兀效果
            await navigator.clipboard.writeText(targetValue);
        } catch (err) {
            // 旧版本浏览器降级使用execCommand兼容方案
            codeInput.select();
            document.execCommand("copy");
            window.getSelection().removeAllRanges();
        }

        // 触发复制成功提示
        copyTextWrapper.classList.add("active");
        setTimeout(() => {
            copyTextWrapper.classList.remove("active");
        }, 2500);
    })
})

逻辑说明

  • URL参数提取使用正则匹配,会自动截取code等号后到下一个&符号(或URL结尾)之间的内容,不会把其他多余参数带入输入框
  • 剪贴板功能做了全版本兼容:高版本浏览器用官方推荐的标准剪贴板API,体验更好;低版本浏览器自动回退到原有实现,不会出现功能失效问题
  • 原有样式、复制成功的气泡提示效果完全保留,不需要额外调整样式文件

测试提示:本地直接双击打开HTML文件时,部分浏览器会限制剪贴板API权限,将页面部署到HTTP/HTTPS服务下访问即可正常使用全部功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:24:40