BOM浏览器对象

BOM:浏览器对象

作用:提供一系列对象用于与浏览器窗口进行交互。eg: 获取浏览器信息,操作浏览器

在这里插入图片描述

window(浏览器窗口对象,主要用于操作浏览器,js中最大的对象,BOM核心对象)
location(地址栏对象 - 提供了对地址栏操作的方法和属性)
history(浏览历史对象,提供了对浏览器历史记录操作的方法和属性)
screen(屏幕对象,获取屏幕的信息)
navigator(浏览器对象,提供了获取浏览器信息的方法和属性)
document(文档对象, - 代表整个网页,DOM的根节点)

在这里插入图片描述

window对象:

    window.innerWidth   //获取可视区域的宽度
    document.documentElement.clientWidth	 //兼容IE的写法

    window.innerHeight  //获取可视区域的高度
    document.documentElement.clientHeight		//兼容IE的写法

方法:

alert(要显示的文本)     //弹出信息框
prompt(输入框提示信息,输入框默认值)     //弹出输入框,点击确定,返回字符串,点击取消,返回null
confirm(确认框提示的信息)       //点击确定返回true,点击取消返回false
close()     //关闭浏览器(火狐不支持!),但都支持通过别的网页打开的新的网页关闭
            //不允许关闭非脚本打开的页面
open(待打开的网页url,窗口名name,打开窗口的外观feature,replace)
    //url,可选,要在新窗口中显示的文档的URL
    //name,可选,声明了新窗口的名称
    //feature,replace自行扩展
    //谷歌会默认把系统自动打开的新网页阻止掉,但不阻止通过事件打开的网页

window内置子对象

1.history对象:该对象包含浏览器访问过的url

该对象的属性:
    history.length;      //返回当前窗口历史记录的数量

该对象的方法:
    history.back();      //后退,加载前一个url。
    history.forward();   //前进,需要后退一下之后,才有前进的方向
    history.go(num);     //参数为正,前进相应的数目,为负,后退相应的数目,为0,刷新
// 输出浏览过的历史长度
    console.log(history.length);

//a.html在其中添加超链跳到b.html
	//a.html
		//body
	    <a href="./b.html">点我跳转</a>
	     <br />
	    <input type="button" value="goForward" onclick="goForward()">
	    //js
	      function goForward(){
	          window.history.forward();
	     }  
	//b.html
		//body
		<input type="button" value="goBack" onclick="goBack()">
		<input type="button" name="" value="使用go后退" onclick="go()" id="">
	//js
     function goBack(){
         window.history.back(); //点我返回
     }
     function go(){
        // 将go的参数设为正的,让其前进
        //将go的参数设为负的,让其后退
        //将go的参数设为0,表示刷新
        window.history.go(-1);
      }
     var len  = window.history.length;   // 当前窗口浏览总长度
     console.log(len);

2.location对象:包含当前url的相关信息,而history对象不能具体反映url的相关信息

   该对象的属性:
       location.href;       //设置或返回完整的url
       location.search;     //返回url?后面的查询部分
       location.hash;       //是一个可读写的字符串,是url的锚部分(从#开始的部分)

   该对象的方法:
       location.reload();   //刷新页面的方法,一般情况下,传递一个true,不使用缓存刷新

   平时在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。
   这意味着,这些字符都不会被发送到服务器端。
   比如,下面URL的原意是指定一个颜色值:
     http://www.example.com/?color=#fff
     JD秒杀的页面,点击不同商品,#后数字不同
        https://miaosha.jd.com/#11782112078
<input type="button" value="获取网址" onclick="getUrl();" />
<input type="button" value="跳转网址" onclick="goUrl();"/>
<input type="button" value="刷新网页" onclick="shuaXin();" /> 

<script>
// 创建获取网址方法
function getUrl(){
    console.log(location.href);	
}

// 创建跳转网址方法
function goUrl()
{
    // location.href = 'http://baidu.com'; // 跳转百度
    location.href = './test.html'; 
}


// 创建刷新网址方法
function shuaXin(){
    location.reload(); 
}

</script>

3.navigator对象

 navigator.appName;   //返回当前浏览器的名称
 navigator.appVersion;//返回当前浏览器的版本号
 navigator.platform;  //返回当前计算机的操作系统

 以上方法已经在逐渐被抛弃,出现一个新的属性替代这些属性:
 navigator.userAgent; //返回浏览器信息
//当前浏览器的名称
   console.log(navigator.appName);
//当前浏览器的版本号
   console.log(navigator.appVersion)
//当前计算机的操作系统
   console.log(navigator.platform)
//返回浏览器信息
   console.log(navigator.userAgent)

4.window.onscroll/onresize /onload()事件

1.window.onscroll 页面发生滚动时执行一些操作

页面滚动条距离顶部的距离
document.documentElement.scrollTop
document.body.scrollTop(兼容写法)

页面滚动条距离左边的距离
document.documentElement.scrollLeft
document.body.scrollLeft(兼容写法)

2.window.onresize 窗口大小发生改变时执行一些操作

3.window.onload() 文档加载完成后执行一些操作
例子:页面加载完出现的小广告

区别:window.onload和$(document).ready{}
window.onload:

1.执行时间:所有元素加载完毕才会执行,不需要考虑加载顺序
2.编写格式不同:不能同时编写多个,有多个的话只会执行一个

$(document).ready{}:

1.执行时间:DOM结构绘制完毕后就执行,不需要等到加载完成
2.编写格式不同:能同时编写多个,且多个都会执行
案例:js模仿固定定位及缓慢回到顶部
//css
	body{height: 3000px;}
	.top{position: absolute;line-height: 30px;padding: 0 10px;background: #ccc;left: 0;top:100px;}
//body
	<h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1><h1>一级标题</h1>
	<div class="top">回到顶部</div>

//js
	// 固定定位
	// 设置提示框的初始oldTop
    var oldTop=100;
    //获取div节点
    var obox= document.getElementsByClassName('top');  
    obox= obox[0];
    // var obox= document.querySelector(".top")
    // 1 检测到滚动条,是否发生变化
    window.onscroll = function(){
       // 2 滚动条变化时,获取滚动条到顶部的位置
       var top = document.documentElement.scrollTop;
         // 3 将滚动条的距离加到定位的top上
          // 添加高度,使用js设置高度时,要加px
           obox.style.top = top + 100 + 'px';
    }
    
	// 缓慢回到顶部
	var timer;
	//		1.绑定事件
			obox.onclick = function(){
	//			2.开启之前先清除
				clearInterval(timer);
	//			3.正式开启计时器
				timer = setInterval(function(){
	//				4.先获取滚动的距离
					var t = document.documentElement.scrollTop;
	//				5.不断判断是否到顶
					if(t <= 0){
	//					6.到顶就停下
						clearInterval(timer)
					}else{
	//					7.没到顶就向上滚动
						document.documentElement.scrollTop = t-=10;
					}
				},30)
			}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值