一、location对象提供和当前加载的文档相关的信息还有一些导航功能。location对象是window对象的属性,同时也是document对象的属性。window.location和document.location指向同一个对象。

location对象不仅保存着当前文档的信息,还可以将URL解析为独立的字段,可以通过不同的属性访问这些片段。

location的所有属性如下

属性名 例子 说明
hash #contents 返回URL中的hash(#号后跟0个或多个字符)
host localhost:8080 返回服务器名称和端口号
hostname localhost 返回服务器名称
href http://www.baidu.com 返回当前加载页面的完整URL
pathname /TyspV4D/ 返回当前URL的目录
port 8080 返回URL中指定的端口号
protocol http 返回URL中使用的协议
search ?q=javascript 返回URL中的查询字符串

1、查询字符串参数

location.search()可以返回从?到URL末尾的所有字符串,但没有办法逐个访问其中查询字符串的参数。为此可以创建下面的函数:

function queryStringParam()
{
var qs=(location.search.length>0?location.search.substring(1):"");
args={};
items=qs.length?qs.spilt("&"):[];//spilt函数是将字符串用特定的符号分开,返回一个数组,这儿返回的是字符串数组
item=null;
name=null;
value=null;
i=0;
while(i<items.length)
{
item=items[i].spilt("=");//在这儿是用“=”将字符串的键和值分离
name=decodeURLComponent(item[0]);//解码
value=decodeURLComponent(item[1]);
if(name.length)
{
args[name]=value;
}
}
return args; }
  • 先用substring函数去掉“?”
  • 用spilt(“&”)将字符串分离为键值对
  • 用spilt(“=”)分离键值
  • 最后取出键和值

2、网址操作

location可以使用很多方式改变浏览器打开的网址,即改变打开的URL值。

首先,最常用的方法时用location调用assgin函数并为其传递一个URL参数。

location.assign("http://www.baidu.com");

使用上面的方法会在历史记录生成一条记录。如果是以window.location=”http://www.baidu.com”和location.href=”http://www.baidu.com”也会调用assgin方法。

location.href是最常用的方法。

修改location对象的其他属性也可以改变当前页的URL。

除了修改hash属性外修改其他属性页面都会重新加载

通过上面这些方式修改URL之后都会在历史记录中生成一条新纪录,这样也就可以通过返回键返回上一页面。那么要是不想使用返回键,就可以使用replace方法,该方法只接受一个URL参数,然后转到该URL页面

setTimeout(function(){
location.replace("http://www.google.com");
},5000);

在上面的代码中,5s之后就会转到google主页,并且不能返回到原来页面,历史记录中也没有生成上一页面。

reload函数如果不接受参数,则是以最节省资源的方式重新加载页面,这样就有可能从浏览器缓存中加载

如果要强制从服务器加载的话就要传递参数true。

reload()//从浏览器加载

reload(true)//从服务器加载

javascript之BOM对象(二location对象)的更多相关文章

  1. 第8章 浏览器对象模型BOM 8.2 location对象

    location 是最有用的 BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能.事实上, location 对象是很特别的一个对象,因为它既是 window 对象的属性, ...

  2. BOM元素之location对象

    location对象提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能,它既是window对象的属性,也是document对象的属性:换句话说,window.location和documen ...

  3. JavaScript -- 时光流逝(十):Screen 对象、History 对象、Location 对象

    JavaScript -- 知识点回顾篇(十):Screen 对象.History 对象.Location 对象 1. Screen 对象 1.1 Screen 对象的属性 (1) availHeig ...

  4. 8.5 JavaScript的BOM(二)

    8.5 JavaScript的BOM 即 浏览器对象模型(Browser Object Model) 浏览器对象包括 一.Window(窗口) 如果需要打开一个新的网站,应该通过超级链接等方式让用户主 ...

  5. 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具

    查看本章节 查看作业目录 需求说明: 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具 实现思路: 使用history对象中的 forward() 方法和 ...

  6. JavaScript 基础(三) - Date对象,RegExp对象,Math对象,Window 对象,History 对象,Location 对象,DOM 节点

    Date对象 创建Date对象 //方法1:不指定参数 var date_obj = new Date(); alert(date_obj.toLocaleString()) //方法2:参数为日期字 ...

  7. BOM 3.1 location对象 | history对象 | navigator对象 | 定时器 | 三大系列

    JavaScript分三个部分: 1. ECMAScript标准---基本语法 2. DOM--->Document Object Model 文档对象模型,操作页面元素的 3. BOM---& ...

  8. 【2017-03-28】JS基础、windows对象、history对象、location对象

    一.JS基础 JS - javaScript 1.js功能: 1).进行数据的运算.2).控制浏览器的一些功能.3).控制元素(属性.内容.样式) js引用位置: 可以放在html页的任意位置. 推荐 ...

  9. History对象和location对象

    history对象 History对象包含用户在浏览器窗口中访问过的url.不是所有浏览器都支持该对象. 属性length   返回浏览器历史列表中的URL数量. 方法:back() 加载histor ...

随机推荐

  1. webapi序列化控制

    我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为json,xml等),但是如果Controller的自动序列化后的结果不是我们想要的该 ...

  2. html表格及列表

    表格的属性: border:边框 cellpadding:内边距  单元格边框跟内容之间的间距 cellspacing:外边距  单元格跟单元格之间的距离 align:表格的对其样式 width:宽度 ...

  3. 第02组 Beta冲刺(1/4)

    队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:了解整个游戏的流程 GitHub签入记录 接下来的计划:继续完成游戏 还剩下哪些任务:完成游戏 燃尽图 遇到的困难:没有美术比较好的 ...

  4. Linux性能优化实战学习笔记:第四十六讲

    一.上节回顾 不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU.内存.文件系统和磁盘 I/O.以及网络的性能分析和优化.相信你已经掌握了这些基础模块的基本分析.定位思路,并熟悉了相关的优化方 ...

  5. Linux 使用squid3搭建代理服务器

    在对接微信/支付宝等3方业务时,往往都有ip白名单的设置,由于内网往往都是动态ip,频繁配置白名单是件及其繁琐的事情. 使用代理转发就是最方便的做法. 下面就使用squid3配置一台代理服务器. sq ...

  6. Spring boot使用influxDB总结

    项目中需要存放大量设备日志,且需要对其进行简单的数据分析,信息提取工作. 结合众多考量因素,项目决定使用时序数据库中的领头羊InfluxDB. 引入依赖 项目中使用influxdb-java,在pom ...

  7. 调用其他python脚本文件里面的类和方法

    问题描述: 自己编写了若干个Python脚本. 在testC.py里面需要调用testA.py和testB.py里面的若干类和方法.要怎么办? 需要都打包.安装,再去调用吗? 其实不必那么麻烦. 这里 ...

  8. Oracle性能调优之虚拟索引用法简介

    本博客记录一下Oracle虚拟索引的用法,虚拟索引是定义在数据字典中的伪索引,可以说是伪列,没有修改的索引字段的.虚拟索引的目的模拟索引,不会增加存储空间的使用,有了虚拟索引,开发者使用执行计划的时候 ...

  9. github 白嫖记(一)

    位运算 按位操作符:0或者1之间的运算 a|b 或 任意一个为1结果为1 console.log(0 | 1) //1 console.log(1 | 0) //1 console.log(1 | 1 ...

  10. Mysql系列(十一)—— 性能分析其他常用监控

    show status show status可以查询显示出当前mysql server的状态信息.该语句不需要任何权限. 对于show status可以时用like子句,模糊检索需要的状态信息.如: ...