location对象

  • 一个完整的URL地址格式

    协议://主机:端口/路径名称#hash标识?搜索条件

  • location对象:既是window对象的属性,也是document对象的属性。window.location和document.location引用的是同一个对象。

  • 下面是location对象的所有属性(写成window.location. ;也能运行):

    //("#contents")返回url中的hash(#号后跟零或多个字符串),如果url中不包含散列,则返回空字符串
    location.hash; 

     //("www.wrox.com:80")返回服务器名称及端口号(如果有)
    loaction.host; 

    //("www.wrox.com")返回服务器名不带端口号
    location.hostname;

    //返回当前加载页面的完整url  而location对象的toString()方法也返回这个值
    location.href;
    window.location.toString();

    //("/WileyCDA/") 返回url中的目录和(或)文件名
    location.pathname;

    //("8080")返回url中制定的端口号,如果url中不包含端口号,则这个属性返回空字符串
    location.port;

    //("http:")返回页面使用的协议,通常是http:或https:
    location.protocol;

    //("?q=javascript")返回URL的查询字符串。这个字符串以问号开头
    location.search;
  • 位置操作:通过通过location对象来改变浏览器的位置。这些改变浏览器位置的方法中,最常用的是设置location.href属性
    //常用方式,打开新的url并在浏览器的历史记录中生成一条记录
    location.assign('http://www.baidu.com');

    //等同于上一行代码的功能
    window.location = 'http://www.baidu.com';
    location.href = 'http://www.baidu.com';
  • 更改当前的加载页面还有以下方法。通过将hash, search, hostname, pathname 和port 属性设置为新值来改变url
    //假设初始URL为http://www.baidu.com/WileyCDA/ 

    //URL修改为"http://www.baidu.com/WileyCDA/#section1" 
    location.hash = '#section1';

    //URL修改为"http://www.baidu.com/WileyCDA/?q=javascript"
    location.search = '?q=javascript';

    //URL修改为"http://www.yahoo.com/WileyCDA/"
    location.hostname='www.yahoo.com';

    //URL修改为"http://www.yahoo.com/mydir/"
    location.pathname='mydir';

    //URL修改为"http://www.yahoo.com:8080/WileyCDA/"
    location.port=8080;

每次修改location的属性(hash除外),页面都会以新URL重新加载。

  • 可以通过replace()方法禁用后退按钮
//接收的参数为要导航到的url,不会在历史记录中生成新记录。调用replace()方法之后用户不能回到前一个页面,后退按钮处于禁用状态
location.replace("http://www.wrox.com/");
  • reload()方法也是与位置有关。
    重新加载当前显示的页面,如果调用reload()时不传递参数,页面会以最有效的方式重新加载

    如果页面自上次请求以来并没有改变过,页面就会从浏览器缓存中重新加载,如果需要强制从服务器重新加载,则需要像下面这样为该方法传递参数true

    位于reload()调用之后的代码可能会也可能不会执行,这取决于网络延迟,或系统资源等因素。最好将reload()放在代码的最后一行。

//重新加载(有可能从缓存中加载)
location.reload();

//重新加载(从服务器重新加载)
location.reload(true);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值