找回密码
 注册账号

QQ登录

只需一步,快速开始

《泰拉瑞亚下载-1.4.2.3版》 泰拉瑞亚服务器 - MOD模组下载

入驻泰拉战网 新手指引 - 升级 - 师徒

泰拉瑞亚合成表 泰拉卡牌 - 泰拉江湖 - 泰拉刺客

联系泰拉开发组👈进入 积分市场 - 房产交易 - 水晶获取

查看: 2426|回复: 0

[JS] JS获取当前页面URL

[复制链接]
蓝袍巫师
法师

2052

主题

2411

回帖

2472

广播

技术小组

积分
16218
泰拉
5941
水晶
15179
铜钥匙
484
银钥匙
3
金钥匙
18

【江湖新秀】【基友证明】【水贴恶魔】【高朋满座】【论坛蘑菇党】【我是小土豪】【宝剑回鞘】【伪娘证书】【超级玛丽】【泰拉达人】【文艺青年证】【社区最高荣誉勋章】【奥运选手】【我很囧证】【宠物·缘定三生】【发帖机器】【潜水高手】【我很萌证】【动漫迷】【有头有脸】【视频爱好者】【萝莉控】【香水有毒】【朋友控】【我素软妹纸】【我是巫婆】【我是公主】【我很聪明证】【新官上任三把火】

QQ
发表于 2020-3-6 13:09:36 | 显示全部楼层 |阅读模式
在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这里是我的一些获取url信息的小总结。

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

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

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

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

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

3、window.location.host(设置或获取 URL 的主机部分)

var test = window.location.host;
alert(test);
返回:i.cnblogs.com

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


二、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. var Request = new Object();
  14. Request = GetRequest();<br>// var id=Request["id"];
  15. // var 参数1,参数2,参数3,参数N;
  16. // 参数1 = Request['参数1'];
  17. // 参数2 = Request['参数2'];
  18. // 参数3 = Request['参数3'];
  19. // 参数N = Request['参数N'];
复制代码


三、指定取
比如说一个url:http://i.cnblogs.com/?j=js,我们想得到参数j的值,可以通过以下函数调用。
  1. function GetQueryString(name) {
  2.   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  3.   var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
  4.   var context = "";
  5.   if (r != null)
  6.      context = r[2];
  7.   reg = null;
  8.   r = null;
  9.   return context == null || context == "" || context == "undefined" ? "" : context;
  10. }
  11. alert(GetQueryString("j"));
复制代码


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



[发帖际遇]: 一个袋子砸在了 墨裔 头上,墨裔 赚了 8 泰拉. 幸运榜 / 衰神榜
每天签到都被打劫

泰拉宝石
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|友链申请|Archiver|手机版|小黑屋|游芯沙盒 ( 陕ICP备11006283号-1 )

GMT+8, 2024-5-17 12:28 , Processed in 0.110173 second(s), 39 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表