获取地址栏参数

来源:互联网 发布:如何新建数据库表 编辑:程序博客网 时间:2024/06/06 00:57

获取地址栏参数

第一种采用window.location方法

window.location 对象所包含的属性

属性描述hash从井号 (#) 开始的 URL(锚)host主机名和当前 URL 的端口号hostname当前 URL 的主机名href完整的 URLpathname当前 URL 的路径部分port当前 URL 的端口号protocol当前 URL 的协议search从问号 (?) 开始的 URL(查询部分)


Location 对象包含有关当前 URL 的信息。Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。

ancestorOrigins: DOMStringList
assign: function () { [native code] }
hash: ""  //锚点
host: "www.baidu.com"
hostname: "www.baidu.com"
href: "http://www.baidu.com/s?wd=location&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=7&rsv_sug1=5&rsv_sug4=367&oq=loca&rsp=1&f=3&rsv_sug5=0"
origin: "http://www.baidu.com" 
pathname: "/s"
port: ""  //端口
protocol: "http:"
reload: function () { [native code] }
replace: function () { [native code] }
search: "?wd=location&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=7&rsv_sug1=5&rsv_sug4=367&oq=loca&rsp=1&f=3&rsv_sug5=0"
toString: function toString() { [native code] }
valueOf: function valueOf() { [native code] }
__proto__: Location
constructor: function Location() { [native code] }
__proto__: Object


页面跳转

 1 window.location="http://example.com";     2 window.location.href="http://example.com";     3 location="http://example.com";     4 location.href="http://example.com";     5 window.location.assign("http://example.com");     6 window.location.replace("http://example.com");
hash

浏览器iframe的url是否改变地址栏hash值是否改变是否支持Mozilla Firefox3.0改变改变支持Google Chrome2.0改变改变支持IE6改变不改变不支持IE7改变不改变不支持IE8改变改变支持

结论:除ie6及以下浏览器、ie7不支持外,其他浏览器都支持hash的“前进”、“后退”功能,同时也发现所有浏览器iframe的url都改变了,这是因为所有浏览器都支持iframe的url缓存,这与hash的缓存不是一个概念,所以排除iframe的url的数据干扰。

replace

复制代码
有3个jsp页面(1.jsp, 2.jsp, 3.jsp),进系统默认的是1.jsp ,当我进入2.jsp的时候, 2.jsp里面用window.location.replace("3.jsp");与用window.location.href("3.jsp");从用户界面来看是没有什么区别的,但是当3.jsp页面有一个「返回」按钮,调用window.history.go(-1);wondow.history.back();方法的时候,一点这个返回按钮就要返回2.jsp页面的话,区别就出来了。 当用window.location.replace("3.jsp");连到3.jsp页面的话,3.jsp页面中的调用window.history.go(-1);wondow.history.back();方法是不好用的,会返回到1.jsp 。 当用window.location.href("3.jsp");连到3.jsp页面的话,3.jsp页面中的调用window.history.go(-1);wondow.history.back();方法是好用的,会返回2.jsp。 因为window.location.replace("3.jsp");是不向服务器发送请求的跳转,而window.history.go(-1);wondow.history.back();方法是根据服务器记录的请求决定该跳到哪个页面的,所以会跳到系统默认页面1.jsp 。 window.location.href("3.jsp");是向服务器发送请求的跳转,window.history.go(-1); wondow.history.back();方法是根据服务器记录的请求决定该跳到哪个页面的,所以就可以返回到2.jsp。 以上简单的说,如果使用window.location.replace,使用浏览器上一页的按钮,是不会回到呼叫window.location.replace的那个页面,而是回到window.location.replace呼叫前的那个页面。这个运用在跳页选单中,每按一次下拉式选单,就会使用window.location.replace跳到一个新页面(事实上是同一个页面,只是传值不同而已),如果用window.location.href来做,那么如果你很频繁的使用跳页选单来查询,那么当你按上一页时,看起来都会是回到同一个页面,如果使用window.location.replace的话,那么按上一页,看起来才象是回到上个页面中。 
复制代码

 

 window.location 和 document.location 的区别

window.location is read/write on all compliant browsers.document.location is read-only in Internet Explorer (at least), but read/write in Gecko-based browsers (Firefox, SeaMonkey).




第二种方法:
// 采用正则表达式获取地址栏参数
// 但是在使用的过程中,发现其在获取中文参数的时候,获取到的值是乱码的
// 解决办法:将解码方式unscape换为decodeURI
// 原因:浏览器会将url中的中文参数进行encodeURI编码,所以要通过js使用decodeURI进行解码
function GetQueryString(name){
var reg =new RegExp("(^|&)"+name +"=([^&]*)(&|$)");
var r =window.location.search.substr(1).match(reg);
if(r!=null)returndecodeURI(r[2]);return null;
}

调用方法:GetQueryString(name);

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 专科本科什么意思 法学本科自考 心理学本科自考 护理自考本科报名 自考本科步骤 自学考试报名专升本 上海自学考试 广东自考网上报名系统 海南自考 自考毕业时间 山东省自学考试 自考专本 武汉自考报名 自考教材哪里买 如何专升本科 专科医学院 科目自考 大专高职 高等职业院校 自考通 大学网 专本套读自考 招生考试网 本科生留学 金融管理自考本科难吗 什么是全日制本科 网络专科自考本科 自考商务管理本科 暨南大学自考本科 传媒大学自考本科 四川大学国际本科 大专生怎么升本科 电子商务自考本科 中专生如何考本科 中南大学自考本科 自考行政管理本科 建筑专业自考本科 怎么考全日制本科 北京大学成人本科 专科可以自考本科吗 金融管理自考本科