📜  jquery 获取原始 url - Javascript (1)

📅  最后修改于: 2023-12-03 14:43:18.681000             🧑  作者: Mango

jQuery 获取原始 URL - JavaScript

当你想要获取当前页面的原始 URL 时,你可以使用 window.location.href,它返回当前页面的完整 URL。但是,有时你只需要 URL 的一部分,比如你可能需要获取 URL 的主机名、端口、路径或查询参数。在这种情况下,jQuery 提供了一些方法来帮助你解析 URL。

获取 URL 的主机名

如果你要获取 URL 的主机名,可以使用 window.location.hostname,它返回当前页面的主机名。

var hostname = window.location.hostname;
console.log("主机名:" + hostname);
获取 URL 的端口号

如果你要获取 URL 的端口号,可以使用 window.location.port,它返回当前页面的端口号。如果 URL 中不包含端口号,则返回默认端口号(80 或 443)。

var port = window.location.port;
console.log("端口号:" + port);
获取 URL 的路径

如果你要获取 URL 的路径,可以使用 window.location.pathname,它返回当前页面的路径(不包括主机名和端口号)。

var pathname = window.location.pathname;
console.log("路径:" + pathname);
获取 URL 的查询参数

如果你要获取 URL 的查询参数,可以使用 window.location.search,它返回当前页面的查询参数(包括问号)。但是,它返回的查询参数是一个字符串,需要进一步解析。

var search = window.location.search;
console.log("查询参数:" + search);

如果你需要将查询参数解析成对象,你可以使用下面的函数:

function parseQueryString(queryString) {
  var params = {};
  var queries, i, pair, query, key, value;

  // 按照 & 分割查询参数
  queries = queryString.split("&");

  // 将每个查询参数分割成键值对,并放入 params 对象中
  for (i = 0; i < queries.length; i++) {
    query = queries[i];
    pair = query.split("=");
    key = decodeURIComponent(pair[0]);
    value = decodeURIComponent(pair[1]);

    // 如果该键已存在,则将该键对应的值转换为数组形式,以便存储多个值
    if (typeof params[key] === "undefined") {
      params[key] = value;
    } else {
      if (Array.isArray(params[key])) {
        params[key].push(value);
      } else {
        params[key] = [params[key], value];
      }
    }
  }

  return params;
}

var search = window.location.search;
var params = parseQueryString(search);
console.log(params);

以上代码将查询参数解析成一个对象,并将重复的键值对存储为数组形式。

获取 URL 的哈希值

如果你要获取 URL 的哈希值(包括 # 符号),可以使用 window.location.hash,它返回当前页面的哈希值。

var hash = window.location.hash;
console.log("哈希值:" + hash);

以上是使用 jQuery 获取原始 URL 的方法。无论你需要获取 URL 的哪个部分,jQuery 都提供了相应的方法,使你能够轻松地访问 URL 的各个部分。