5-9 BOM操作-代码演示
UA
> console.log(navigator.userAgent)
[Log] Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8
这个方法也不是百分之百的能区分浏览器,比如360,有的封禁360浏览器,然后它就把UA做的跟Chrome一毛一样,就很难区分了。至少这个办法有个相对的结果
location
http://coding.imooc.com/lesson/115.html?cid=99#mid=5390
https 或者http是协议
coding.imooc.com 是域
/lesson/115.html pathname
?cid=99 location.search 还可以and ?cid=99&a=b
#mid=5390 location.hash
http://coding.imooc.com/lesson/115.html?cid=99#mid=5390 location.href
通过location.href = "http://baidu.com" 可以改变地址。这个可以展示,也可以改变地址。
Location 对象属性
http://coding.imooc.com/lesson/115.html?cid=99#mid=5390 location.href
属性描述 从头往后记忆:
protocol设置或返回当前 URL 的协议。
hostname设置或返回当前 URL 的主机名。
port设置或返回当前 URL 的端口号。
host设置或返回主机名和当前 URL 的端口号。
pathname设置或返回当前 URL 的路径部分。
hash设置或返回从井号 (#) 开始的 URL(锚)。
search设置或返回从问号 (?) 开始的 URL(查询部分)。
href设置或返回完整的 URL。
http://www.runoob.com/jsref/obj-location.html
分析:
http是协议 protocol /ˈprəʊtəkɒl/ www.runoob.com 是主机名hostname
这里说一下host和hostname区别:
location.host 包含端口,比如是 127.0.0.1:81。如果端口是 80,那么就没有端口,就是 127.0.0.1。
location.hostname 不包含端口,比如是 127.0.0.1。
jsref/obj-location.html 是pathname,路径。
Location 对象描述
Location 对象存储在 Window 对象的 Location 属性中,表示那个窗口中当前显示的文档的 Web 地址。它的href 属性存放的是文档的完整 URL,其他属性则分别描述了 URL 的各个部分。这些属性与 Anchor 对象(或 Area 对象)的 URL 属性非常相似。当一个 Location 对象被转换成字符串,href 属性的值被返回。这意味着你可以使用表达式 location 来替代 location.href。
不过 Anchor 对象表示的是文档中的超链接,Location 对象表示的却是浏览器当前显示的文档的 URL(或位置)。但是 Location 对象所能做的远远不止这些,它还能控制浏览器显示的文档的位置。如果把一个含有 URL 的字符串赋予 Location 对象或它的 href 属性,浏览器就会把新的 URL 所指的文档装载进来,并显示出来。
除了设置 location 或 location.href 用完整的 URL 替换当前的 URL 之外,还可以修改部分 URL,只需要给 Location 对象的其他属性赋值即可。这样做就会创建新的 URL,其中的一部分与原来的 URL 不同,浏览器会将它装载并显示出来。例如,假设设置了Location对象的hash 属性,那么浏览器就会转移到当前文档中的一个指定的位置。同样,如果设置了search 属性,那么浏览器就会重新装载附加了新的查询字符串的 URL。
除了 URL 属性外,Location 对象的reload() 方法可以重新装载当前文档,replace()可以装载一个新文档而无须为它创建一个新的历史记录,也就是说,在浏览器的历史列表中,新文档将替换当前文档。
网友评论