浏览器相关的对象。获取浏览器相关的信息,可以设置和修改浏览器属性。

0. web-app 版 TodoList 小程序

用以下内容可以自己手写一个 TodoList 小程序,再添加几行代码就可以用手机浏览器保存在桌面变成一个 web-app 使用!我自己写的托管在 GitHub,感兴趣的可以看看源码给个 star!~

GitHub 项目地址:项目地址

小程序入口(推荐用手机打开):程序入口

1. window

1.1 延迟函数

延迟一段时间执行某个函数,setTimeout 有返回值,这个返回值即是 setTimeout 的 id 值。

注意:延迟函数是异步执行的。具体的执行方式是,在设定的时间过后,将函数重新放到 script 的末尾等待执行。

语法:

  • setTimeout(函数对象,延迟多少毫秒执行)
  • setTimeout(函数对象,延迟时间,后面的参数皆为函数对象的参数)

清除延迟函数:

clearTimeout(延迟函数的ID)

1.2 间隔函数

每隔一段时间执行一次,第一次执行也会延迟。间隔函数也是异步执行函数,会将间隔执行的函数对象,放置到内存的事件队列里,到了时间点,就会从事件队列拿到主线程进行执行,主线程会根据在空闲时间点执行事件。

语法同 setTimeout 类似,有 setIntervalclearInterval 这两个方法用于创建和删除。

1.3 其它方法和属性

  • fetch:未来学习ajax的时候可以用到的方法
  • open:打开一个新的页面
  • outerHeight:浏览器的高度
  • outerWidth:浏览器的宽度
  • alert:仅仅只是一个弹框,只有一个确定按钮
  • comfirm:有确定和取消按钮的弹框,返回值分别为true和false
  • prompt:这是一个可以让用户输入内容的弹框。(不建议使用)
  • scrollto:设置滚动条,滚动到什么位置,语法:scrollTo(水平位置,垂直位置)

2 location

  • hash: "#hotspotmining" --->页面锚点的位置
  • host: "baike.baidu.com" --->主机域名
  • hostname: "baike.baidu.com" --->主机名称
  • href: "https://baike.baidu.com/item/%E8%BF%90%E5%8A%A8/2134938#hotspotmining" --->这个页面链接地址
  • origin: "https://baike.baidu.com" --->来源的域名
  • pathname: "/item/%E8%BF%90%E5%8A%A8/2134938" --->服务器页面的项目路径
  • port: "" --->端口号,没有写就是根据协议,默认的端口号
  • protocol: "https:" --->协议,一般是http或者是https
  • location.href = "http://www.taobao.com" --->可以修改路径,跳转至相对应的页面
  • location.assign("http://www.qq.com") --->跳转页面:
  • location.reload() --->重新加载页面
  • location.replace('http://www.qq.com') --->替换掉当前页面

注意:assign和replace是有区别的。assign相当于跳转到下一个页面,所以会有返回键。replace是替换掉当前页面,所以不能返回之前的页面。

3 navigator

Navigator可以获取浏览器和系统相关的信息。

一般通过 userAgent 来获取浏览器的信息,并且根据浏览器信息,发送相对于的页面,例如是发送 PC 页面还是移动端页面。

//通过navigator来判断访问的浏览器
var userAgent = navigator.userAgent if(userAgent.indexOf("iPhone")!=-1 || userAgent.indexOf("Android")!=-1 || userAgent.indexOf("iPad")!=-1){
console.log("你是移动端")
//location.assign("http://m.taobao.com")
}else{
console.log("你是pc端")
//location.assign("http://www.taobao.com")
}

4 history

只能对页面前进后退,不能真正获取用户的浏览记录。

  • history.back():后退1个页面
  • history.forward():前进1个页面
  • history.go():history.go(前进或后退的数)

    正数是前进,负数是后退。

5 localStorage

永久性保存数据,只要你不删除数据,数据就会永久保留。

5.1 使用localstorage进行增删改查

增、改

localStorage.xx = 赋值内容
localStorage.setItem("username","隔壁老王")
localStorage["like"] = "c唱t跳rRapl篮球

删除

localStorage.removeItem("like")
delete localStorage.like

获取

console.log(localStorage.username)
console.log(localStorage['username'])
console.log(localStorage.getItem('username'))

删除所有

localStorage.clear()

6 sessionStorage

和 localStorage 类似,但仅在当次绘画有效,当关闭页面后,则丢失数据。

7 JSON

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

可以实现对象和文本的相互转换

var obj = {
name:"蔡徐坤",
like:["唱","跳","rap","打代码"] } //将js对象转换成json格式的字符串
var strJson = JSON.stringify(obj)
console.log(strJson) //json字符串转换成js对象
var jsonObj = JSON.parse(strJson)
console.log(jsonObj)

Javascript - BOM 对象的更多相关文章

  1. JavaScript BOM对象介绍

    bom:即broswer object model(浏览器对象模型),由五个对象组成:        Window:对象表示浏览器中打开的窗口 最顶层对象.       Navigator :浏览器对 ...

  2. 前端基础:JavaScript BOM对象

    JavaScript BOM对象 JavaScript Window - 浏览器对象模型 浏览器对象模型(BOM)使JavaScript有能力与浏览器"对话". 浏览器对象模型(B ...

  3. javascript BOM对象 第15节

    <html> <head> <title>浏览器对象</title> <script type="text/javascript&quo ...

  4. Javascript BOM对象

    BOM是browser object model的缩写,简称浏览器对象模型. window对象(BOM的核心对象) 表示浏览器的一个实例,在浏览器中,window对象有着双重角色,它既是通过Javas ...

  5. JavaScript之BOM对象

    JavaScript bom对象 BOM对象 window对象 所有浏览器都支持 window 对象.概念上讲.一个html文档对应一个window对象.功能上讲: 控制浏览器窗口的.使用上讲: wi ...

  6. JavaScript基础16——js的BOM对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 第三章 JavaScript操作BOM对象

    第三章   JavaScript操作BOM对象 一.window对象 浏览器对象模型(BOM)是javascript的组成之一,它提供了独立与浏览器窗口进行交换的对象,使用浏览器对象模型可以实现与HT ...

  8. JavaScript快速入门-BOM对象

    一.什么是BOM      概念 BOM(Browser Object Model)即浏览器对象模型.BOM提供了独立于内容,而与浏览器窗口进行交互的对象:      核心 由于BOM主要用于管理窗口 ...

  9. JavaScript BOM DOM 对象

    title: JavaScript BOM DOM 对象 tags: JavaScript --- browser object model document onject model BOM对象 w ...

随机推荐

  1. 路由器配置——RIP路由

    一.实验目的:用rip路由实现全网互通 二.拓扑图: 三.具体步骤配置 (1)R1路由器配置 Router>enable  --进入特权模式Router#configure terminal   ...

  2. docker部署项目: centos+python+redis+mysql+uwsgi+nginx

    一.Centos7安装docker 1.1 环境配置 先测试是否下载了docker:查看镜像:docker images没有下载,就依次执行以下环境的安装 ①curl http://mirrors.a ...

  3. LIUNX 安装 nginx

    安装依赖 yum install gcc yum install pcre-devel yum install zlib zlib-devel yum install openssl openssl- ...

  4. swoole入门简介

    原文:https://www.cnblogs.com/dormscript/p/4811921.html 本文主要记录一下学习swoole的过程.填过的坑以及swoole究竟有多么强大! 首先说一下对 ...

  5. 字符串暴力枚举子序列求LCS

    题意: 求n个串里的LCS,长度相同时按照字典序排序 solution: 断环为链,二进制枚举子序列,压入vector,按照字典序排序 把出现次数为n的,压入第二个vector 输出最长的第二个vec ...

  6. Python可变参数函数用法详解

    来自:http://c.biancheng.net/view/2257.html 很多编程语言都允许定义个数可变的参数,这样可以在调用函数时传入任意多个参数.Python 当然也不例外,Python ...

  7. hadoop新旧节点

    注意:黑白名单只出现在名称(nn)节点<!-- 白名单 --><property><name>dfs.hosts</name>/Users/yangya ...

  8. Hibernate3映射数据类型

    1. 在实际开发中需要在hbm文件中使用的type属性值是指定的类型.那    么指定的类型一般的是基于hibernate的类型.2. 当然在实际过程中也可以在hbm文件中指定java类型. publ ...

  9. RabbitMQ学习之:(八)Topic Exchange (转贴+我的评论)

    From: http://lostechies.com/derekgreer/2012/05/18/rabbitmq-for-windows-topic-exchanges/ RabbitMQ for ...

  10. Selenium 2自动化测试实战35(HTML测试报告)

    HTML测试报告 显然,一份漂亮的测试报告展示自动化测试成果只有一个简单的log文件是不够的.HTMLTestRunner是python标准库unittest单元测试框架的一个扩展,它生成易于使用的H ...