JS获取地址栏中的链接URL参数

原文链接:http://caibaojian.com/177.html

本文将通过实际例子讲解怎么使用javascript或者jquery获取地址url参数,希望你会喜欢。

问题描述

今天做一个主题,有一个需求是根据不同的页面来做,虽然php也可以做到,不过考虑到自己的特效代码都是在jQuery上完成,想着能否直接通过获取地址栏中的链接参数里面的数字直接来实现效果。

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

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

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

解决方案

下面这种可能会更好呢?

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

获取查询值

JavaScript版:

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://caibaojian.com/?p=177.html的p值
getUrlParam('p'); //输出177

jQuery版:

<script type="text/javascript">
(function($){
$.getUrlParam = function(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r!=null) return unescape(r[2]); return null;
}
})(jQuery);
$(function(){
alert(window.location.href);
alert($.getUrlParam('page'));
})
</script>

http://www.caibaojian.com/front?page=5

当一个页面的地址是上面这个,那么我们使用了上面的jQuery代码,就会弹出一个数字5了。

内容扩展

对于像下面这样的网址
http://www.caibaojian.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
我们可以用javascript获得其中的各个部分
1, window.location.href-----------整个URl字符串(在浏览器中就是完整的地址栏)
本例返回值: http://www.caibaojian.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

2,window.location.protocol---------URL 的协议部分
本例返回值:http:

3,window.location.host----------URL 的主机部分
本例返回值:www.caibaojian.com

4,window.location.port-----URL 的端口部分
如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符
本例返回值:""

5,window.location.pathname(URL 的路径部分(就是文件地址))
本例返回值:/fisker/post/0703/window.location.html

6,window.location.search-------查询(参数)部分
除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值
本例返回值:?ver=1.0&id=6

7,window.location.hash-------锚点
本例返回值:#imhere

 

文章目录

JavaScript,jQuery 推荐文章

  • 跨浏览器使用javascript/jQuery获取iframe的内容

    iframe是内联框架,允许你单独的HTML文件加载到一个现有的文件。您还可以加载文件的动态“src”属性。假设有一个需要iframe内容和过程使用JavaScript。下面的例子可以帮助你做,这已经是一个跨浏览器Firefox和IE浏览器 ...

  • 使用js来设置、读取、删除cookie的最佳代码(附换肤应用)

    继上一篇文章中我们讲到cookie的概念,今天我们来写如何用js来设置cookie、读取cookie、删除cookie。本文代码来自网络,并附上网页常见的使用cookie换肤案例供学习。 设置cookie function setCooki ...

  • 免费css3技巧:时间线, Nexus 7, 滑动和菜单.

    1.使用css3和jQuery的作品时间线 非常感谢tutorizlzine,在这篇教程中,我们可以看到一个由jQuery插件展示的作品事件的时间线。你可以添加很多种媒体类型,包括文章、视屏和地图等 In this great tutori ...

  • 优化jQuery调整屏幕和滚动性能

    在最近的一个jQuery插件中,我使用到了jQuery中的resize()方法来检测用户调整浏览器窗口并运行相关代码。 我注意到resize window时各个浏览器的性能消耗不一。 IE、Safari、Chrome在调整窗口变化中一直在执 ...

  • CORS跨域POST请求并不兼容IE7及以下

    很多人以为(包括我之前也是)跨域只需要后端Apach返回的标头中Header set Access-Control-Allow-Origin: *”,就可以放心的使用,今天再跟大家说一次,这个CORS(跨域资源共享)的方案在POST下并不兼容IE7及以下,IE8-IE9则需要使用window.XDomainRequest.来兼容。

原文:JS获取地址栏中的链接URL参数 ,未经许可,禁止转载。
来源:前端开发博客 (http://caibaojian.com/177.html)


 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在使用jQuery的post请求发送数据时,地址栏是不会显示请求的目标地址的。这是因为post请求是通过AJAX技术来实现的,所以页面不会重新加载或跳转,而是通过在后台与服务器进行通信来获取数据。 当使用jQuery的post方法发送请求时,我们需要指定请求的目标地址和要发送的数据。例如: ```javascript $.post("example.php", {name: "John", age: 30}, function(data){ // 处理返回的数据 }); ``` 在以上例子,我们发送了一个post请求给example.php这个目标地址,并附带了name和age两个参数。在请求发送后,页面不会发生跳转,而是继续停留在当前页面,通过与服务器的通信获取返回的数据。 所以,无论是get请求还是post请求,在使用jQuery的AJAX方法发送请求时,地址栏是不会显示请求的目标地址的。只有当我们通过表单提交或通过a标签链接点击跳转时,地址栏才会改变展示新的URL。 ### 回答2: jQuery的post请求是通过Ajax方式向后端发送请求并获取返回的数据。在post请求地址栏是不会发生改变的。 jQuery的post请求使用`$.post()`函数发送请求,该函数接受三个参数:请求的URL、要发送的数据以及成功时的回调函数。 例如: ```javascript $.post("example.php", { name: "John", age: 30 }, function(data) { console.log(data); }); ``` 上述代码会向URL为"example.php"的后端发送一个post请求,发送的数据是一个包含name和age的对象。当请求成功时,会将返回的数据输出到控制台。 在这个过程地址栏是不会发生改变的。通常情况下,地址栏URL只会在页面加载或跳转时发生改变,而使用Ajax发送的请求是异步的,不会刷新页面或改变URL。 所以,在发送jQuery的post请求时,地址栏是保持不变的,不会显示请求的URL

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值