【发布时间】:2019-02-12 10:03:53
【问题描述】:
我有一个生成 URL 的工具,以及一个用于将生成的 URL 复制到剪贴板的按钮。此函数确实成功复制了我的 URL:
function copyUrlToClipboard() {
var $temp = $("<input>");
$("body").append($temp);
$temp.val(myUrl).select();
document.execCommand("copy");
$temp.remove();
}
但是,在复制的 URL 中,与号字符将替换为 &amp%3B。例如,网址
mysite.com/?utm_source=se&utm_medium=foo
变成
mysite.com/?utm_source=se&amp%3Butm_medium=foo
不幸的是,我在下游使用了分段/幅度分析,它无法从该 URL 中提取参数。
为什么会这样?有没有办法改变copy 的行为,或者我可以对剪贴板项目进行一些后处理?如果做不到这一点,有人知道是否可以将段配置为更智能地提取参数?
更新:
经调查,$temp.val() 似乎负责用&amp; 替换&(我不确定这个术语是什么 - 清理它?)然后在浏览器中粘贴 url 时@ 987654330@ 被清理为%3B。但我不明白为什么要清理val(),是否可以在我的临时元素上设置属性/属性,或者使用不同类型的元素?
【问题讨论】:
-
可能是
$temp.value? -
提供一个可运行的演示,重现其他人可以根据minimal reproducible example 测试的问题。您可以通过在问题编辑器中单击
<>使其在页面中可运行 -
myUrl来自哪里?
标签: javascript jquery segment-io