jQuery获取地址栏中的链接参数
问题描述
今天做一个主题,有一个需求是根据不同的页面来做,虽然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]; // 获取的是数字部分
获取查询值
<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
分类:
Jquery 常用方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
2018-07-16 Django admin 常用方法 model 增加只读权限