如何解码电子邮件地址的查询参数

How to decode a query parameter for an email address

本文关键字:电子邮件地址 查询 参数 解码 何解码      更新时间:2023-09-26

我在登陆页面上有一个联系人表单,当用户填写表单时,信息通过URL传递到第二个登陆页面。在第二个登陆页面上,我有一个javascript,从URL中提取名字、姓氏和电子邮件,并将它们插入相应的字段中。然而,电子邮件被添加到第二个登陆页面的电子邮件字段,用%40代替"@"符号(bob%40bob.com)。因此,当用户尝试提交表单时,它不会验证。

我知道我需要解码URI,但我不确定我需要如何实现它到现有的javascript。下面是我在第二个登陆页面上的javascript,用于解析URL并将变量插入表单。

<script type="text/javascript">
function getQueryVariable(variable) {
               var query = window.location.search.substring(1);
               var vars = query.split("&");
               for (var i=0;i<vars.length;i++) {
                       var pair = vars[i].split("=");
                       if(pair[0] == variable){return pair[1];}
               }
               decodeURIComponent(vars);
               return(false);
        }

        var firstName = getQueryVariable("firstname");
        var lastName = getQueryVariable("lastname");
        var userEmail = getQueryVariable("email");
        window.onload = function() {
            document.getElementById('field[63]').value=firstName;
            document.getElementById('field[64]').value=lastName;
            document.getElementById('field[62]').value=userEmail;
        }
</script>

表单字段是由小部件创建的,不需要访问任何代码。

您试图在匹配返回后解码,所以不是

if(pair[0] == variable){return pair[1];}
使用

if(pair[0] == variable){return decodeURIComponent(pair[1]);}