首页 > 其他分享 >js如何准确获取当前页面url网址信息

js如何准确获取当前页面url网址信息

时间:2023-03-03 17:44:37浏览次数:31  
标签:url js test window 参数 location var 页面

在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这里是我的一些获取url信息的小总结。

下面我们举例一个URL,然后获得它的各个组成部分:http://i.jb51.net/EditPosts.aspx?opt=1

1、window.location.href(设置或获取整个 URL 为字符串)

var test = window.location.href;
alert(test);
返回:http://i.jb51.net/EditPosts.aspx?opt=1

2、window.location.protocol(设置或获取 URL 的协议部分)

var test = window.location.protocol;
alert(test);
返回:http:

3、window.location.host(设置或获取 URL 的主机部分,包括端口,如果不需要端口则是locaiton.hostname)

var test = window.location.host;
alert(test);
返回:i.jb51.net

4、window.location.port(设置或获取与 URL 关联的端口号码)

var test = window.location.port;
alert(test);
返回:空字符(如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符)

5、window.location.pathname(设置或获取与 URL 的路径部分(就是文件地址))
var test = window.location.pathname;
alert(test);
返回:/EditPosts.aspx

6、window.location.search(设置或获取 href 属性中跟在问号后面的部分)

var test = window.location.search;
alert(test);
返回:?opt=1

PS:获得查询(参数)部分,除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值。

7、window.location.hash(设置或获取 href 属性中在井号“#”后面的分段)

var test = window.location.hash;
alert(test);
返回:空字符(因为url中没有)

8、js获取url中的参数值

一、正则法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 function getQueryString(name) {  var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');  var r = window.location.search.substr(1).match(reg);  if (r != null) {   return unescape(r[2]);  }  return null; } // 这样调用: alert(GetQueryString("参数名1"));    alert(GetQueryString("参数名2"));    alert(GetQueryString("参数名3"));

二、split拆分法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 function GetRequest() {  var url = location.search; //获取url中"?"符后的字串  var theRequest = new Object();  if (url.indexOf("?") != -1) {   var str = url.substr(1);   strs = str.split("&");   for(var i = 0; i < strs.length; i ++) {    theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);   }  }  return theRequest; } var Request = new Object(); Request = GetRequest();<br>// var id=Request["id"]; // var 参数1,参数2,参数3,参数N; // 参数1 = Request['参数1']; // 参数2 = Request['参数2']; // 参数3 = Request['参数3']; // 参数N = Request['参数N'];

三、指定取

比如说一个url:http://i.jb51.net/?j=js,我们想得到参数j的值,可以通过以下函数调用。

1 2 3 4 5 6 7 8 9 10 11 function GetQueryString(name) {  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");  var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配  var context = "";  if (r != null)    context = r[2];  reg = null;  r = null;  return context == null || context == "" || context == "undefined" ? "" : context; } alert(GetQueryString("j"));

四、单个参数的获取方法

1 2 3 4 5 6 7 8 function GetRequest() {  var url = location.search; //获取url中"?"符后的字串  if (url.indexOf("?") != -1) { //判断是否有参数   var str = url.substr(1); //从第一个字符开始 因为第0个是?号 获取所有除问号的所有符串   strs = str.split("="); //用等号进行分隔 (因为知道只有一个参数 所以直接用等号进分隔 如果有多个参数 要用&号分隔 再用等号进行分隔)   alert(strs[1]);   //直接弹出第一个参数 (如果有多个参数 还要进行循环的)  } }

javascript 获取当前 URL 参数的两种方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 //返回的是字符串形式的参数,例如:class_id=3&id=2& function getUrlArgStr(){   var q=location.search.substr(1);   var qs=q.split('&');   var argStr='';   if(qs){     for(var i=0;i<qs.length;i++){       argStr+=qs[i].substring(0,qs[i].indexOf('='))+'='+qs[i].substring(qs[i].indexOf('=')+1)+'&';     }   }   return argStr; } //返回的是对象形式的参数 function getUrlArgObject(){   var args=new Object();   var query=location.search.substring(1);//获取查询串   var pairs=query.split(",");//在逗号处断开   for(var i=0;i<pairs.length;i++){     var pos=pairs[i].indexOf('=');//查找name=value     if(pos==-1){//如果没有找到就跳过       continue;     }     var argname=pairs[i].substring(0,pos);//提取name     var value=pairs[i].substring(pos+1);//提取value     args[argname]=unescape(value);//存为属性   }   return args;//返回对象 }

另外列出一些 javascript 获取url中各个部分的功能方法:

window.location.host; //返回url 的主机部分,例如:www.xxx.com 
window.location.hostname; //返回www.xxx.com 
window.location.href; //返回整个url字符串(在浏览器中就是完整的地址栏),例如:www.xxx.com/index.php?class_id=3&id=2 
window.location.pathname; //返回/a/index.php或者/index.php 
window.location.protocol; //返回url 的协议部分,例如: http:,ftp:,maito:等等。 
window.location.port //url 的端口部分,如果采用默认的80端口,那么返回值并不是默认的80而是空字符

以上就是本文的全部内容,希望对大家理解如何获取当前页面url网址信息有所帮助。

标签:url,js,test,window,参数,location,var,页面
From: https://www.cnblogs.com/itjeff/p/17176466.html

相关文章

  • vue获取不到页面图片实际宽高
    在某些情况下需要页面图片的宽高,使用Image获取加载图片获取图片宽高时为0,是因为图片未加载完返回宽高为0如果未获取到宽高需要使用定时器定时获取图片,直到获取到后再清除......
  • 2023-03-03 js map 双重嵌套
    恩。。其实也没啥要记录的,记住关键一点就是必须要有return,不管是几重,比如:arr.map((item,index)=>{  return(    item.arr2.map((item2,index2)=>{......
  • js写星星评价
    html      <divclass="zxpj_list">        <divclass="zxpj_main">          <span>*</span>      ......
  • ES6标准的JS代码,是否能进码混淆加密?
    nodejs开发,使用es6标准的javascript代码,是否能进行代码混淆加密?回答是肯定的,能。使用JShaman就可以进行加密。以import语法为例,用一个node小工程进行测试:先准备两段代码,一个......
  • vue实现app页面切换效果
    pageAninmatevue-router实现webApp切换效果快速集成1.复制PageTransittion.vue到项目目录。2.修改router配置。Router.prototype.goBack=function(){this.isB......
  • js自定义事件
    触发自定义事件(只有这一种)dom.dispatchEvent(eventObject)创建自定义事件方法方法一(已被W3C标准弃用,浏览还支持)dom.createEvent()dom.initEvent(eventName,ca......
  • powershell脚本将json文件至SQL Server
    一、问题引入之前写过一篇博客关于T-SQL脚本将json文件至SQLServer,但T-SQL脚本只能在SSMS软件下运行。现在迫切需要一种能在操作系统shell中运行的脚本,在StackOverflow......
  • NestJS学习笔记
    起步要想使用nest需要先安装依赖#全局安装npmi-g@nestjs/cli#局部安装npmi-g@nestjs/cli创建需要使用以下命令(如果使用局部安装,每次使用nest命令都需要......
  • url查询参数转对象
    将url的参数转换为对象的方法newURL()//解析url地址Object.fromEntries()//把键值对列表转换为一个对象location.search//获取url地址中的参数部分location.href//获......
  • JavaScript模块化理解-CommonJS、AMD、CMD、UMD、ES6
    参考:JavaScript模块化-CommonJS、AMD、CMD、UMD、ES6前端模块化——彻底搞懂AMD、CMD、ESM和CommonJS 在JS早期,使用script标签引入JS,会造成以下问题:加载的时候阻塞......