BOM对象

  • 浏览器对象模型
  • BOM可以通过JS操作浏览器
  • BOM中提供了一组对象,来完成对浏览器的操作
  • BOM对象·

    • Window:代表整个浏览器窗口,同时window也是网页中的全局对象
    • Navigator:代表当前浏览器的信息,通过该对象可以识别不同的浏览器
    • Location:代表当前浏览器的地址栏信息,通过Location可以获取地址栏信息,或者操作浏览器跳转页面
    • History:代表浏览器历史记录,通过该对象来操作浏览器历史记录。

      • 由于隐私原因,该对象不能获取具体历史记录。
      • 只能操作浏览器向前或者向后翻页
      • 该操作只在当此访问时有效。【当此的向前,向后翻页】
    • Screen:代表用户屏幕信息,通过该对象可以获取到用户显示器的相关信息
  • 这些对象在浏览器中,都是作为window属性保存的。

    • 可以作为window对象属性访问,也可以直接访问[全局变量]

Navigator

  • 代表的当前浏览器信息,通过该对象可以来识别不同浏览器
  • 由于历史原因,Navigator对象中大部分属性已经不能帮助识别浏览器
  • 一般只会使用userAgent来判断浏览器信息

    • userAgent是一个字符串,这个字符串中含有又来描述浏览器信息的内容。不同浏览器会有不同的userAgent

IE11中已经将微软和IE相关的表示去除了。 所以基本不能通过userAgent来识别一个浏览器是否是IE了

var ua = navigator.userAgent;
console.log(ua);
if (/firefox/i.test(ua)){
    alert("火狐浏览器");
}else if(/chorme/i.test(ua)){
    alert("谷歌浏览器");
}else if (/msie/i.test(ua)){
    alert("IE浏览器");
}else if ("ActiveXObject" in window){
    alert("IE11浏览器");
}

如果通过userAgent不能判断,还阔以通过一些浏览器中特有对象,来判断浏览器信息。比如 ActiveXObject

History

  • length:可以获取到当前访问的连接数量
  • back():可以用来回退到上一个页面,作用和浏览器回退按钮一样
  • forword():可以用来跳转到下一个也i按,作用和浏览器前进按钮一样
  • go():可以用来跳转到指定页面。

    • 需要一个整数作为参数
    • 1:向前跳转一个页面相当于 forword()
    • 2:向前跳转两个页面
    • -1:向后跳转一个页面
    • -2:向后跳转两个页面
window.onload  = function(){
    
    var btn = document.getElementById("btn");
    btn.onclick = function (){
        history.back();
    }
}

Location

/*
        Location封装了浏览器的地址栏信息

*/

window.onload  = function(){

    var btn = document.getElementById("btn01");
    btn.onclick = function (){
        // 如果直接将location修改为一个完整路径,或相对路径,会跳转到响应页面。
        //并且会生成响应的历史记录
        var url = "http://www.google.com";
        alert(location.port);
        location = url;

        //assign(URL) 跳转到其他页面。作用和直接修改location一样
        assign(url);

        //reload().重新载入页面,作用和刷新一样
        //如果在方法中传递一个true。作为参数,则会强制清空缓存刷新页面
        location.reload();

        //replace()
        //可以使用一个新的页面替换当前页面,调用完毕也会跳转页面。
        //不会生成历史记录,不能使用回退按钮
        location.replace("04拖拽.html");
    }
}

window

定时器

var timer = setInterval(function(){},time);:生成一个定时器

clearInterval(timerID):阔以接受任意参数,如果参数是一个有效的定时器表示,则停止对应的定时器。否则,什么也不做。

var timeouter = setTimeout():延时调用一个函数不马上执行,而是隔一段时间以后执行,而且只执行一次

clearTimeout(timeOuter);

/*
            延时调用,
            延时调用一个函数不马上执行,而是隔一段时间以后执行,而且只执行一次

            定时调用会执行多次,延时调用只执行一次

            两者阔以互相代替
*/
var timeOuter = setTimeout(function(){
    console.log("我是5喵后的你哦。");
},5000);

clearTimeout(timeOuter);
最后修改:2022 年 01 月 11 日
如果觉得我的文章对你有用,请随意赞赏