获取地址栏参数
来源:互联网 发布:如何新建数据库表 编辑:程序博客网 时间:2024/06/06 00:57
获取地址栏参数
第一种采用window.location方法
window.location 对象所包含的属性
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
结论:除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).