javascript - 为什么我要获取的URL参数显示不全?

标签 javascript url-parameters

我正在使用 "posName" 参数跟踪网址,例如:

example.com?posName=Content+&+Community+Manager+(H/F)

但是我的代码只返回"Content":

function () {
    var uri = document.location.href;
    var uri_dec = decodeURIComponent(uri);
    var url = new URL(uri_dec);
    var posName= url.searchParams.get("posName");
    return posName;
}

如何获取完整的参数?

编辑: 我有另一个 URL,如:

exemple.com?posName=Club+&+Animator+(H/F)

并且代码返回了完整的参数...那么是参数的长度导致了这个问题吗?

最佳答案

我已修改您的函数以接受 URI 作为参数。您需要在将参数附加到查询字符串之前对其进行编码(我们在这里看不到这段代码)。您函数中的 decodeURIComponent 也不是必需的。

function getPosName (URI) {
    //var uri_dec = decodeURIComponent(uri);
    var url = new URL(URI);
    var posName = url.searchParams.get("posName");
  return posName;
}

console.log("Using your current URI:", getPosName("http://exemple.com?posName=Content+&+Community+Manager+(H/F)"))

const encodedParam = encodeURIComponent("Content & Community Manager (H/F)")
console.log("Encoded Parameter:", encodedParam)
const wellFormedURI = `http://exemple.com?posName=${encodedParam}`
console.log("Well Formed URI:", wellFormedURI)
console.log("Using well formed URI:", getPosName(wellFormedURI))

关于javascript - 为什么我要获取的URL参数显示不全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56247718/

相关文章:

javascript - 找不到jquery输入自动完成功能

javascript - 替换html文档的内容

jsf - 在 JSF 的托管 bean 中获取 GET 参数

javascript - 使用jquery点击多次旋转图像

javascript - 如果未登录,则重定向 html 页面

javascript - 当字符串末尾有 `\' 时,Json 字符串无法解码

java - 如何从 URL 中提取参数,无论其书写方式如何?

oracle-apex - 如何将 APEX 参数值传递给外部 URL

gwt - 通过 Spring Security 登录保持 GWT 历史哈希

javascript - Firefox 中的 window.location.hash 问题