函数GetURLParameter(sParam)在页面上返回%20作为空白

时间:2014-10-31 16:32:31

标签: javascript jquery

我有这个代码将URL参数拉入登录页面,问题是它在%20中拉出空白区域。所以如果我的url参数是: example.com/?title=my网站它会在页面上显示我的%20website我希望它显示我的网站没有%20。这是代码

function GetURLParameter(sParam)
   {   
     var sPageURL = window.location.search.substring(1);
     var sURLVariables = sPageURL.split('&');
     for (var i = 0; i < sURLVariables.length; i++) 
  {
    var sParameterName = sURLVariables[i].split('=');
    if (sParameterName[0] == sParam) 
    {
        return sParameterName[1];
    }
  }
  }

(function ($) {
// fire once DOM is loaded
$(document).ready(function() {
    // set the cookie name
    var cookie_name = 'node-title';
    // get the "phone" URL param
    var phone_number = GetURLParameter('title');
    // check if there is a phone number in the URL
    if (phone_number) {
        // set the cookie
        $.cookie(cookie_name, phone_number, { path: '/' });
    }
    // get the phone cookie value
    var phone_cookie = $.cookie(cookie_name);
    // check if there is a value set in the phone cookie
    if (phone_cookie) {
        // swap the phone number
        $('.' + cookie_name).html(phone_cookie);
        // update the href too
        $('a.' + cookie_name).attr('href', 'tel://' + phone_cookie);
    }
    });
    })(jQuery);

2 个答案:

答案 0 :(得分:1)

只需在返回之前对值进行url-decode。取代

return sParameterName[1];

return decodeURIComponent(sParameterName[1]);

答案 1 :(得分:1)

您看到的文字是url-encoded。您只需在显示它之前解码它。您可以将GetURLParameter()功能更改为:

function GetURLParameter(sParam)
   {   
     var sPageURL = window.location.search.substring(1);
     var sURLVariables = sPageURL.split('&');
     for (var i = 0; i < sURLVariables.length; i++) 
  {
    var sParameterName = sURLVariables[i].split('=');
    if (sParameterName[0] == sParam) 
    {
        return return decodeURIComponent(sParameterName[1]);
    }
  }
}

如果您有兴趣了解有关不同url-encoded组件的更多信息,请查看以下链接:

http://www.w3schools.com/tags/ref_urlencode.asp