0

从 StackOverflow 获得以下代码。它应该解析 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];
    }
  }
};
4

2 回答 2

1

您使用的代码查找 URL 的“搜索”部分(查询字符串),但您使用的页面没有任何查询字符串。您页面上的 URL 看起来像http://www.atomz.host-ed.me/#?l=en. hash( #) 之后的所有内容都是 URL片段的一部分。

而不是window.location.search.substring(1),使用window.location.hash.substring(2).

(或者去掉 URL 片段开头的问号,使用window.location.hash.substring(1).)

于 2016-08-20T16:50:55.657 回答
0

尝试使用window.location.hrefdocument.URL获取当前页面的完整 URL。更多关于他们:

  1. https://developer.mozilla.org/en-US/docs/Web/API/Document/location
  2. https://developer.mozilla.org/en-US/docs/Web/API/Document/URL
于 2016-08-20T15:14:37.120 回答