0

我有一个生成 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 时,它;被清理为%3B. 但我不明白为什么val()要进行清理,是否可以在我的临时元素上设置属性/属性,或者使用不同类型的元素?

4

1 回答 1

0

感谢评论建议,我想通了。这是因为myUrl来自 django 模板变量:

{{ original.my_url }}

事实证明,我必须将此变量标记为安全

{{ original.my_url | safe }}

这现在复制 url 而不修改。感谢你的建议!

于 2019-02-12T02:03:53.393 回答