0

我试图解码 URL 链接中的 %20,这样当我将代码从当前页面解码到下一页时,如果不在文本字段中添加 %20 就无法获得我的值,下面是我用于解码 %20 的编码以及我放置的位置

function loadRecord(i){
    var item=dataset.item(i);
    fname.value = item['fname'];
    id.value = item['id'];
    window.location.href = decodeURIComponent("userup2.html?id="+item['id']+"&fname="+item['fname']+"&val=300");
    return false;
}

这是当前的,将重定向到第二页以显示数据

在此处输入图像描述

在此处输入图像描述

为什么即使我对 decodeURIComponent 进行编码,它仍然显示 %20?请帮忙

4

2 回答 2

1

您必须在将 URI 传递给您的输入时对其进行解码。将其解码以将其传递给window.location是正确的,但浏览器将再次对其进行转义。

我假设您从参数中获取输入值。因此,您在参数中设置输入值的位置(在您的情况下,当然是在 documentuserup2.html中,您必须解码 URI。

因此,在您从参数设置输入值的地方,您必须再次对其进行解码:

document.getElementByTagName('input').value = decodeURI(...your code to get the params);
于 2012-07-11T07:17:22.227 回答
0

为什么即使我对 decodeURIComponent 进行编码,它仍然显示 %20?

浏览器正在对 url 进行编码以使其成为有效的 URL。即使您正在对其进行解码,它也会再次分配给 window.location.href,因此控件返回给浏览器。

你无法绕过它。而是在接收端解码 url。

于 2012-07-11T07:18:33.717 回答