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

从Active Campaign拉取变量生成URL,如何让空格自动转%20?

解决方案

想让文本框直接显示转义后的URL(空格替换为%20),你得在页面加载时就对文本框内容做URL编码处理,同时调整复制逻辑确保用编码后的内容。修改后的代码如下:

<script>
document.querySelectorAll(".copy-link").forEach((copyLinkParent) => {
    const inputField = copyLinkParent.querySelector(".copy-link-input");
    const copyButton = copyLinkParent.querySelector(".copy-link-button");
    
    // 页面加载时编码URL,将空格替换为%20
    let encodedText = encodeURI(inputField.value);
    inputField.value = encodedText;

    inputField.addEventListener("focus", () => inputField.select());

    copyButton.addEventListener("click", () => {
        inputField.select();
        navigator.clipboard.writeText(encodedText);

        inputField.value = "Copied!";
        setTimeout(() => (inputField.value = encodedText), 2000);
    });
});
</script>

关键修改点:

  • 初始化编码:用encodeURI()处理文本框的原始值,它会自动把空格转成%20,同时保留https://、?、=这些URL合法结构符号不被编码。
  • 同步复制内容:把原本的text变量替换为编码后的encodedText,确保复制的内容和文本框显示的完全一致。

进阶处理(可选):

如果只需要针对company参数的值单独编码(避免影响URL其他部分),可以拆分URL后单独处理参数值,再重新拼接:

// 仅编码company参数值的示例
const originalUrl = inputField.value;
const urlParts = originalUrl.split('?company=');
if (urlParts.length === 2) {
    const encodedCompany = encodeURIComponent(urlParts[1]);
    encodedText = `${urlParts[0]}?company=${encodedCompany}`;
}
inputField.value = encodedText;

这种方式更精准,只会编码公司名称部分,适合需要严格控制编码范围的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:50:38