JS--获取当前域名、端口号、url、参数--方法/实例

深碍√TFBOYSˉ_ 2023-10-01 08:43 71阅读 0赞

原文网址:JS—获取当前域名、端口号、url、参数—方法/实例_IT利刃出鞘的博客-CSDN博客

简介

说明

本文用示例介绍如何使用JavaScript获取当前页面的这些数据:域名、端口号、Url、相对路径和参数、指定参数。

测试方法

本文用此网址来测试:https://knife.blog.csdn.net/article/details/121482997?ab=12&cde=345

访问之后,在浏览器里使用Console来测试:

57fbf9203640444fae711f7a993f2767.png

location的属性

windows.location有如下属性,可以通过windows.location.xxx获取。






















































属性

举例结果

href

完整的 URL

http://localhost:8080/project/front/user/serviceIndex?type=1

protocol

协议

http:

host 主机 localhost:8080

hostname

主机名

localhost

port

端口号

8080

host

主机名+端口号

localhost:8080

pathname

当前 URL 的相对路径

/project/front/user/serviceIndex

search

当前 URL 的参数

?type=1

hash

#开始的锚

获取当前域名

法1:window.location.host

  1. var domain = window.location.host;
  2. console.log(domain);

结果:knife.blog.csdn.net

法2:document.domain

  1. var domain = document.domain;
  2. console.log(domain);

结果:csdn.net

获取端口号

法1:window.location.port

  1. var port = window.location.port;
  2. console.log(port);

结果:undefined

本处是域名网址,所以没有端口号

获取url

有如下四种方式,获得的都是整个url。

  1. window.location.href
  2. self.location.href
  3. document.URL
  4. document.location.href

例:

  1. var url = window.location.href;
  2. console.log(url);

结果:https://knife.blog.csdn.net/article/details/121482997?ab=12&cde=345

获取域名+端口+路由

window.location.href; 获取的url会把?后面的参数也带过去,如果不需要后面的参数,可以这样处理:

  1. let routerIndex = window.location.href.indexOf('?');
  2. let url = window.location.href.slice(0, routerIndex > 0 ? routerIndex : window.location.href.length);
  3. console.log(url);

结果:https://knife.blog.csdn.net/article/details/121482997

获取相对路径

首先获取 Url,然后把 Url 通过 // 截成两部分,再从后一部分中截取相对路径。如果截取到的相对路径中有参数,则把参数去掉。

  1. function getUrlRelativePath()
  2. {
  3.   var url = document.location.toString();
  4.   var arrUrl = url.split("//");
  5.   var start = arrUrl[1].indexOf("/");
  6.   var relUrl = arrUrl[1].substring(start);//stop省略,截取从start开始到结尾的所有字符
  7.   if(relUrl.indexOf("?") != -1){
  8.     relUrl = relUrl.split("?")[0];
  9.   }
  10.   return relUrl;
  11. }

调用方法:getUrlRelativePath();

结果:/article/details/121482997

获取参数

法1:正则表达式

  1. function getQueryString(name) {
  2. var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
  3. var result = window.location.search.substr(1).match(reg);
  4. if (result != null) {
  5. return unescape(result[2]);
  6. }
  7. return null;
  8. }
  9. getQueryString('ab');

结果:12

法2:split拆分法

  1. function getRequest() {
  2. var url = location.search; //获取url中"?"符后的字串
  3. var theRequest = new Object();
  4. if (url.indexOf("?") != -1) {
  5. var str = url.substr(1);
  6. strs = str.split("&");
  7. for(var i = 0; i < strs.length; i ++) {
  8. theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
  9. }
  10. }
  11. return theRequest;
  12. }
  13. console.log(getRequest()['ab']);

结果:12

发表评论

表情:
评论列表 (有 0 条评论,71人围观)

还没有评论,来说两句吧...

相关阅读