JS获取地址栏中的链接


0311lc.com说:

假设页面的地址是这样子的。http://0311lc.com/p/165 ,那么我要获取最后的一个数字165,可以通过这样子的代码

var url= window.location.href;
var index = url.substring(url.lastIndexOf('/') + 1);

但是这样子有缺陷,假如我获取到的地址不是这样子的形式,而是http://0311lc.com/tools的话,那么这个index的值就不是一个数字了。

下面这种可能会更好呢?

var lastBit = url.substring(url.lastIndexOf('/') + 1).match(/[^\/]*$/)[0];
var lastDigits = url.substring(url.lastIndexOf('/') + 1).match(/[0-9]*$/)[0];  // 获取的是数字部分

获取查询值

function getUrlParam(name){
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r!=null) return unescape(r[2]); return null;
}
//获取http://0311lc.com/?p=177.html的p值
getUrlParam('p'); //输出177

内容扩展

http://www.0311lc.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

  • window.location.href                  整个URl字符串(在浏览器中就是完整的地址栏)
    返回值:http://www.0311lc.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere·
  • window.location.protocol                   URL 的协议部分
    返回值:http:
  • window.location.host                             URL 的主机部分
    返回值:www.0311lc.com
  • window.location.port                               URL 的端口部分
    如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符
    返回值:””
  • window.location.pathname                  (URL 的路径部分(就是文件地址))
    返回值:/fisker/post/0703/window.location.html
  • window.location.search                  查询(参数)部分
    除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值
    本例返回值:?ver=1.0&id=6
  • window.location.hash                    锚点
    本例返回值:#imhere

 


发表评论

电子邮件地址不会被公开。 必填项已用*标注