JS decodeURIComponent returns Firefox 中的空字符串(最新)
JS decodeURIComponent returns empty string in Firefix (most recent)
从 Whosebug 获得以下代码。它应该解析 URL 中的变量,但是当我在 for 循环中调试 sURLVariables 的值时,它的值始终为空。有什么想法吗?
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'), sParameterName, i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
};
尝试使用 window.location.href
或 document.URL
获取当前页面的完整 URL。关于他们的更多信息:
您正在使用的代码查找 URL(查询字符串)的 "search" 部分,但您正在使用的页面没有任何查询字符串。您页面上的 URL 看起来像 http://www.atomz.host-ed.me/#?l=en
。散列 (#
) 之后的所有内容都是 URL 片段 .
的一部分
而不是 window.location.search.substring(1)
,使用 window.location.hash.substring(2)
。
(或者去掉URL片段开头的问号,改用window.location.hash.substring(1)
。)
从 Whosebug 获得以下代码。它应该解析 URL 中的变量,但是当我在 for 循环中调试 sURLVariables 的值时,它的值始终为空。有什么想法吗?
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'), sParameterName, i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
};
尝试使用 window.location.href
或 document.URL
获取当前页面的完整 URL。关于他们的更多信息:
您正在使用的代码查找 URL(查询字符串)的 "search" 部分,但您正在使用的页面没有任何查询字符串。您页面上的 URL 看起来像 http://www.atomz.host-ed.me/#?l=en
。散列 (#
) 之后的所有内容都是 URL 片段 .
而不是 window.location.search.substring(1)
,使用 window.location.hash.substring(2)
。
(或者去掉URL片段开头的问号,改用window.location.hash.substring(1)
。)