location
1 .href:整个url
2 .protocol:当前url的协议,包括冒号:
3 .host:主机和端口,默认的80端口433端口会省略
4 .hostname:主机名,不包括端口号
5 .port:端口号
6 .pathname:url的路径部分,从根路径/开始
7 .search:查询字符,从问号?开始
8 .hash:片段字符串部分,从#开始
9 .username:域名前面的用户名
10 .password:域名前面的密码
11 .origin;url的协议,主机名和端口
12 .这些属性里面,只有origin属性是只读的,别的都是可写的。
13 .href属性是浏览器唯一允许跨域写入的属性,即非同源的窗口可以改写另一个窗口,比如子窗口和父窗口的Location.href属性。导致后者的网址跳转
14 .
方法
1 .location.assign:接受一个url字符串作为参数,使得浏览器立刻跳转到新的url.
2 .location.replace():跟上一个一样,只不过不会留历史记录。那你直接多传一个参数不就行了吗?非要多定义一个函数
3 .reload:按下刷新按钮。如果传入一个参数是true,那么重新请求这个网页,并且重新加载之后,网页将滚动到头部,如果参数是false,浏览器将从本地缓存重新加载该网页,并且重新加载后,网页的视口位置是重新加载前的位置。
4 .
URL的编码和解码
1 .网页的url只能包含合法的字符,类似于变量名的定义,其他的字符出现url中都必须转义,规则就是根据操作系统的默认编码,将每个字节转为百分号加上两个大写的十六进制字母
2 .常见的就是汉字http://www.example.com/q=%E6%98%A5%E8%8A%82。http://www.example.com/q=春节
3 .encodeURL():用于转码整个URL.他的参数是一个字符串,代表整个URL.他会将元字符和语义字符之外的字符,都进行转义
4 .encodeURLComponent():传入的参数应该是地址里面应该转换的部分,千万不要全部传入一个完整的字符串,因为他会转码除了语义字符串以外的所有字符,即元字符也会被转码
5 .decodeURL():encodeURL的逆运算,接受一个参数,就是转码之后的URL
6 .decodeURLComponent():encodeURLComponent()方法的逆运算
7 .
URL对象
1 .URL对象是浏览器的原生对象,可以用来构造,解析和编码URL.window.url可以获得这个对象
2 .a元素和area元素都部署了这个接口。他们的dom节点对象都是可以使用url的是属性和方法的
3 .实例属性:和location对象的属性基本一致,返回当前URL的信息
4 .静态方法
1 .URL.createObjectURL() 为上传、下载的文件。流媒体文件生成一个url字符串,代表了file对象或blob对象的url
2 . URL.revokeObjectURL():释放刚才URL.createObjectURL方法生成的url实例
URLSearchParams
1 .用来构造,解析和处理url的查询字符串,就是url问号后面的部分,就和node的差不多
2 .https://wangdoc.com/javascript/bom/location.html