javascript - URL 编码将 “&”(和号)视为 “&” HTML 实体

标签 javascript urlencode

我正在编码一个将在 URL 中传递的字符串(通过 GET)。但是如果我使用 escapeencodeURIencodeURIComponent& 将被替换为 %26amp%3B ,但我希望将其替换为 %26。我做错了什么?

最佳答案

没有看到您的代码,除了在黑暗中刺伤之外,很难回答。我猜您传递给 encodeURIComponent() 的字符串是正确使用的方法,它来自访问 innerHTML 属性的结果。解决方案是改为获取 innerText/textContent 属性值:

var str, 
    el = document.getElementById("myUrl");

if ("textContent" in el)
    str = encodeURIComponent(el.textContent);
else
    str = encodeURIComponent(el.innerText);

如果不是这样,您可以使用 replace() 方法替换 HTML 实体:

encodeURIComponent(str.replace(/&/g, "&"));

关于javascript - URL 编码将 “&”(和号)视为 “&” HTML 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3541711/

相关文章:

java - 是否可能与 URLEncoder 发生名称冲突

javascript - 我可以让 Mongo map 减少一个对象的多个值的计数吗?

javascript - Webpack:从 html 模板加载图像

javascript - Internet Explorer 7 Google map 呈现问题

javascript - Threejs lerp和相机动画不流畅

查询字符串参数的 Java URL 编码

php - urlencode() 不起作用

asp.net-mvc - 如何在 ASP .NET MVC 中对参数进行 URL 编码

javascript - 如何在foreach迭代中去掉这个{},需要去掉object

urlencode - 什么时候应该将空格编码为加号 (+) 或 %20?