zoukankan      html  css  js  c++  java
  • window.location

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

     1 ancestorOrigins: DOMStringList
     2 assign: function () { [native code] }
     3 hash: ""  //锚点
     4 host: "www.baidu.com"
     5 hostname: "www.baidu.com"
     6 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"
     7 origin: "http://www.baidu.com" 
     8 pathname: "/s"
     9 port: ""  //端口
    10 protocol: "http:"
    11 reload: function () { [native code] }
    12 replace: function () { [native code] }
    13 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"
    14 toString: function toString() { [native code] }
    15 valueOf: function valueOf() { [native code] }
    16 __proto__: Location
    17 constructor: function Location() { [native code] }
    18 __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).
  • 相关阅读:
    程序猿也爱学英语(上),有图有真相
    New Year's resolution for 2016
    Got the Best Employee of the year 2015 Star Award
    AngularJs项目文件以及文件夹结构
    完成AngularJS with MVC 5, Web API 2项目
    两则新闻引发的思考
    关于招聘的最新信息
    架构师面试更新版
    2015新加坡总统府
    关于2014年的旅行
  • 原文地址:https://www.cnblogs.com/globalwatch/p/3242805.html
Copyright © 2011-2022 走看看