zoukankan      html  css  js  c++  java
  • JavaScript10—BOM

    BOM是指浏览器对象模型,可以使我们通过JS来操作浏览器,在BOM中为我们提供了一组对象,用来完成对浏览器的操作。

    BOM对象

    • Window — 代表的是整个浏览器的窗口,同时window也是网页中的全局对象
    • Navigator — 代表的当前浏览器的信息,通过该对象可以来识别不同的浏览器
    • Location — 代表当前浏览器的地址栏信息,通过Location可以获取地址栏信息,或者操作浏览器跳转页面
    • History — 代表浏览器的历史记录,可以通过该对象来操作浏览器的历史记录由于隐私原因,
      • 该对象不能获取到具体的历史记录,只能操作浏览器向前或向后翻页而且该操作只在当次访问时有效
    • Screen — 代表用户的屏幕的信息,通过该对象可以获取到用户的显示器的相关的信息
    这些BOM对象在浏览器中都是作为window对象的属性保存的,可以通过window对象来使用,也可以直接使用。

    Navigator 

    <!doctype html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
        </style>
    
        <script type="text/javascript">
            /*
                Navigator
                    代表的当前浏览器的信息,通过该对象可以来识别不同的浏览器    
                    由于历史原因,Navigator对象中的大部分属性都已经不能帮助我们识别浏览器了
                    一般我们只会使用userAgent来判断浏览器的信息,
                        userAgent是一个字符串,这个字符串中包含有用来描述浏览器信息的内容,
                        不同的浏览器会有不同的userAgent
    
                火狐的userAgent 
                    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0 js.html:22:17
                chrome的userAgent 
                    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36
                IE8
                    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)
                IE9
                    Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)
                IE10
                    Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko
                IE11
                    Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko
                    在IE11中已经将微软和IE相关的标识都已经去除了,所以我们基本已经不能通过userAgent来识别一个浏览器是否是IE了
    
            */
            // console.log(navigator.appName);
            var ua = navigator.userAgent;
            console.log(ua);
            if (/firefox/i.test(ua)) {
                alert("你是火狐! ! ! ");
            } else if (/chrome/i.test(ua)) {
                alert("你是Chrome---");
            } else if (/msie/i.test(ua)) {
                alert("你是IE浏览器~~~");
            } else if("ActiveXObject" in window){
                alert("你是IE11,枪毙了你~~~")
            }
    
            /*
                如果通过UserAgent不能判断,还可以通过一些浏览器中特有的对象,来判断浏览器的信息
                    比如: ActiveXobject
            */
            // if (window.ActiveXObject) {
            //     alert("你是IE,我已经抓住你了~~~");
            // } else {
            //     alert("你不是IE~~~");
            // }
            // alert(!!window.ActiveXObject);// IE11为false,11以下是true
            // alert("ActiveXObject" in window);
            // if ("ActiveXObject" in window) {
            //     alert("你是IE,我已经抓住你了~~~");
            // } else {
            //     alert("你不是IE~~~");
            // }
        </script>
    </head>
    
    <body>
    </body>
    
    </html>

     History

    <!doctype html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
        </style>
    
        <script type="text/javascript">
            /*
                History
                    对象可以用来操作浏览器向前或向后翻页
            */
            // alert(history);
    
            window.onload = function () {
                // 获取按钮对象
                var btn = document.getElementById("btn");
                btn.onclick = function () {
                    /*
                        length
                            属性,可以获取到当成访问的链接数量
                    */
                    // alert(history.length);
    
                    /*
                        back()
                            可以用来回退到上一个页面,作用和浏览器的回退按钮一样
                    */
                    // history.back();
    
                    /*
                        forward()
                            可以跳转下一个页面,作用和浏览器的前进按钮一样
                    */
                    // history.forward();
    
                    /*
                        go()
                            可以用来跳转到指定的页面
                            它需要一个整数作为参数
                                1:表示向前跳转一个页面相当于forward()
                                2:表示向前跳转两个页面
                                -1:表示向后跳转一个页面
                                -2:表示向后跳转两个页面
                    */
                    history.go(-2);
                }
            }
        </script>
    </head>
    
    <body>
        <button id="btn">点我一下</button>
        <h1>History</h1>
    </body>
    
    </html>

     Location

    <!doctype html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
        </style>
    
        <script type="text/javascript">
            /*
                Location
                    该对象中封装了浏览器的地址栏的信息
            */
    
            window.onload = function () {
                // 获取按钮对象
                var btn = document.getElementById("btn");
                btn.onclick = function () {
                    // 如果直接打印location,则可以获取到地址栏的信息(当前页面的完整路径)
                    // alert(location);
    
                    // 如果直接将location属性修改为一个完整的路径,或相对路径
                    // 则我们页面会自动跳转到该路径,并且会生成相应的历史记录
                    // location = "http://www.baidu.com";
    
                    /*
                        assign()
                            用来跳转到其他的页面,作用和直接修改location一样
    
                    */
                    // location.assign("http://www.baidu.com");
    
                    /*
                        reload()
                            用于重新加载当前页面,作用和刷新按钮一样
                            如果在方法中传递一个true,作为参数,则会强制清空缓存刷新页面
                    */
                    // location.reload(true);
    
                    /*
                        replace()
                            可以使用一个新的页面替换当前页面,调用完毕也会跳转页面
                                不会生成历史记录,不能使用回退按钮回退
                    */
                    location.replace("http://www.baidu.com");
                }
            }
        </script>
    </head>
    
    <body>
        <button id="btn">点我一下</button>
        <h1>Location</h1>
        <input type="text" />
    </body>
    
    </html>

     

    转载请注明出处:https://www.cnblogs.com/stu-jyj3621
  • 相关阅读:
    Android App内存优化之图片优化
    APP中的存储路径
    为什么源码中很多方法就一行throw new RuntimeException("Stub!")
    Android运行时Crash自动恢复框架-Recovery
    Android图片压缩框架-Tiny 集成
    防止APP退到被安卓系统清理
    Android开发中,那些让你觉得相见恨晚的方法、类或接口
    安卓设置沉浸式状态栏
    Euler Sums系列(四)
    一个含有Fibonacci Number的级数
  • 原文地址:https://www.cnblogs.com/stu-jyj3621/p/13418431.html
Copyright © 2011-2022 走看看