我有这个代码将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);
答案 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
组件的更多信息,请查看以下链接: