BOM基础

179 阅读3分钟

JavaScript中的任何一个全局函数或全局变量都是window的属性

BOM是Browser Object Model的缩写,简称浏览器对象模型

window的子对象

  • document 对象
  • frames 对象
  • history 对象
  • location 对象
  • navigator 对象
  • screen 对象

window对象下的方法

窗体滚动轴控制

页面左上角为零点向右为x轴向下为y轴

window.scrollTo(x,y) //页面滚动到指定位置
window.scrollBy(x,y)//页面分别在x轴y轴上滚动了多少距离

新建窗口

var url = 'https://www.baidu.com'
window.open(url)//在新窗口打开指定连接页面

对话框

alert()
prompt()
confirm('')//确认对话框 包含确定和取消按钮 会返回一个boolean值

时间等待与间隔函数

var tid = setTimeout(function(){},毫秒数)
// n秒之后执行指定的方法 有两个参数 第一个参数是一个方法 第二个参数时间间隔数(以毫秒为单位的)
clearTimeout(tid);//清除定时器 需要有一个参数 这个参数是一个定时器 
var timer = setInterval(function(){},毫秒数)
//每隔n秒执行执行的方法 有两个参数 第一个参数是一个方法 第二个参数时间间隔数(以毫秒为单位的)
// timer 没有特别的含义 它是一个number类型的数 可以理解为页面中的第几个定时器
clearInterval(timer)
//清楚定时器

单线程 多线程

js是单线程

同步 异步

主线程和任务队列

代码顺序执行 遇到异步方法(setTimeout)会把这个方法放进任务队列里

当主线程的任务都执行完毕后 会将任务队列中的方法取出 并且看等待时间间隔是否达到,如果时间到了就执行这个方法

history对象,在浏览器历史记录中导航

back() 加载 history 列表中的前一个 URL

forward() 加载 history 列表中的下一个 URL

go(num) 加载 history 列表中的某个具体页面

var oBtn =  document.getElementById('btn');
oBtn.onclick = function() {
    history.forward();
}
var oB1 = document.getElementById('btn1');
oB1.onclick =  function() {
  history.go(1);
}

navigatior对象属性

console.log(navigator.userAgent);
对象的属性代码使用方法为 对象.属性
chorme 是webkit内核
对象的方法代码使用方法为 对象.方法()

location对象

location对象的方法

location.replace('') 替换当前记录,history中没有历史记录

location.reload() 重新加载当前页面

location对象的属性

location.href = '' 打开新的页面,history中有历史记录

location.hash 设置或返回从井号 (#) 开始的 URL(锚)

location.host 设置或返回主机名和当前 URL 的端口号

location.hostname设置或返回当前 URL 的主机名

location.href 设置或返回完整的

location.pathname 设置或返回当前 URL 的路径部分

location.port设置或返回当前 URL 的端口号

location.protocol 设置或返回当前 URL 的协议

location.search 设置或返回从问号 (?) 开始的 URL(查询部分)

HTML URL

scheme://host.domain:port/path/filename

scheme - 定义因特网服务的类型。流行的类型是 http https file

host - 定义域主机(http 的默认主机是 www)

domain - 定义因特网域名,比如 w3school.com.cn

:port - 定义主机上的端口号(http 的默认端口号是 80)

path - 定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)。

filename - 定义文档/资源的名称

注意: 网址为https 资源为http 会报错

网址为http 资源https 不会报错

为了保证正确性

引用资源时会去掉scheme ://...... 这样资源会继承网址的scheme

高度不会继承父元素的 宽度会