• 浏览器对象模型 (BOM)


    浏览器对象模型 (BOM)

      浏览器对象模型(Browser Object Model (BOM))  

     Window 尺寸

      有三种方法能够确定浏览器窗口的尺寸。

      对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:

        window.innerHeight - 浏览器窗口的内部高度(包括滚动条)

        window.innerWidth - 浏览器窗口的内部宽度(包括滚动条)

      对于 Internet Explorer 8、7、6、5:

        document.documentElement.clientHeight

        document.documentElement.clientWidth

      或者

        document.body.clientHeight

        document.body.clientWidth

     其他 Window 方法

      window.open() - 打开新窗口

      window.close() - 关闭当前窗口

      window.moveTo() - 移动当前窗口

      window.resizeTo() - 调整当前窗口的尺寸

     Window Screen

      window.screen对象在编写时可以不带上 window 这个前缀。

       screen.availWidth - 可用的屏幕宽度   属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。

       screen.availHeight - 可用的屏幕高度  该属性返回访问者屏幕的高度,以像素计,减去界面特性,比如窗口任务栏。

     Window Location

       window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。 对象在编写时可不使用 window 这个前缀,如:

        location.hostname 返回 web 主机的域名

        location.pathname 返回当前页面的路径和文件名

        location.port 返回 web 主机的端口 (80 或 443)

        location.protocol 返回所使用的 web 协议(http:// 或 https://)

     Window Location Href

      location.href 属性返回当前页面的 URL。  

     Window Location Assign

      location.assign() 方法加载新的文档。

      如:box2.innerHTML = window.location.assign('http://www.guiyinqingyuan.com');

     Window History

      window.history 对象包含浏览器的历史。 该对象在编写时可不使用 window 这个前缀。

       history.back() - 与在浏览器点击后退按钮相同  history.back() 方法加载历史列表中的前一个 URL。

       history.forward() - 与在浏览器中点击向前按钮相同  history forward() 方法加载历史列表中的下一个 URL。

      附:除了history.back()history.forward() 还可以通过 history.go() 来实现前进和后退  

        //前进
        function lia(){
          history.go(1);   // go() 里面的参数表示跳转页面的个数 例如 history.go(1) 表示前进一个页面
        }

        //后退
        function hua(){
          history.go(-1);   // go() 里面的参数表示跳转页面的个数 例如 history.go(-1) 表示后退一个页面
        }

      Window Navigator (navigator 对象的信息具有误导性,不应该被用于检测浏览器版本

        window.navigator 对象包含有关访问者浏览器的信息。 该对象在编写时可不使用 window 这个前缀。

        <div id="example"></div>
        <script>
          txt = "<p>浏览器代号: " + navigator.appCodeName + "</p>";
          txt+= "<p>浏览器名称: " + navigator.appName + "</p>";
          txt+= "<p>浏览器版本: " + navigator.appVersion + "</p>";
          txt+= "<p>启用Cookies: " + navigator.cookieEnabled + "</p>";
          txt+= "<p>硬件平台: " + navigator.platform + "</p>";
          txt+= "<p>用户代理: " + navigator.userAgent + "</p>";
          txt+= "<p>用户代理语言: " + navigator.systemLanguage + "</p>";
          document.getElementById("example").innerHTML=txt;
        </script>

      注意:navigator 对象的信息具有误导性,navigator 数据可被浏览器使用者更改,一些浏览器对测试站点会识别错误,浏览器无法报告晚于浏览器发布的新操作系统

    JavaScript 弹窗

      可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。

      警告框  window.alert() 方法可以不带上window对象,直接使用alert()方法。

      确认框  window.confirm() 方法可以不带上window对象,直接使用confirm()方法。

      提示框  window.prompt() 方法可以不带上window对象,直接使用prompt()方法。

    JavaScript 计时事件  

      javaScript 通过设定一个时间间隔之后来执行代码,我们称之为计时事件

      在 JavaScritp 中使用计时事件的两个关键方法是:

        setInterval() - 间隔指定的毫秒数不停地执行指定的代码。

        setTimeout() - 在指定的毫秒数后执行指定代码。

      注意: setInterval() 和 setTimeout() 是 HTML DOM Window 对象的两个方法。

      setInterval() 方法

        setInterval() 间隔指定的毫秒数不停地执行指定的代码

        window.setInterval() 方法可以不使用window前缀,直接使用函数setInterval()。    

        setInterval() 第一个参数是函数(function),第二个参数间隔的毫秒数, 1000 毫秒是一秒。

      clearInterval() 方法  用于停止 setInterval() 方法执行的函数代码。

        window.clearInterval() 方法可以不使用window前缀,直接使用函数clearInterval()

        要使用 clearInterval() 方法, 在创建计时方法时你必须使用全局变量:

        // clearInterval点击停止
        var hua = setInterval(function(){tu()}, 1000);
        function tu(){
          box.innerHTML = new Date().toLocaleTimeString();
        }
        btn1.onclick = function(){
          clearInterval(hua);
        }

     setTimeout() 方法

      setTimeout()的使用方法和setInterval() 方法差不多,区别在于setTimeout()使用一次之后就失效了,setInterval() 方法则是一直循环使用  

      // setTimeout() 方法执行一次后失效
       var hermit = setTimeout(function(){lxlx()}, 5000);
       function lxlx(){
         box1.innerHTML = new Date().toLocaleTimeString() + '如果你在5秒之内没有点击阻止,我才能显示';
       }

     clearTimeout() 方法

      clearTimeout() 方法用于停止执行setTimeout()方法的函数代码。但是必须在setTimeout()方法执行之前点击,因为setTimeout()方法执行一次,之后就自动失效了  

      var hermit = setTimeout(function(){lxlx()}, 5000);
      function lxlx(){
        box1.innerHTML = new Date().toLocaleTimeString() + '如果你在5秒之内没有点击阻止,我才能显示';
      }
      btn2.onclick = function(){
        clearTimeout(hermit);
      }

     JavaScript Cookie

       Cookie 用于存储 web 页面的用户信息,Cookie 是一些数据, 存储于你电脑上的文本文件中。

       当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。

       Cookie 的作用就是用于解决 "如何记录客户端的用户信息": 当用户访问 web 页面时,他的名字可以记录在 cookie 中。在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。

       Cookie 以名/值对形式存储,如username = John Doe

       当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。

     使用 JavaScript 创建Cookie

      Cookie 用于存储 web 页面的用户信息。Cookie 是一些数据, 存储于你电脑上的文本文件中。

      当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。Cookie 的作用就是用于解决 "如何记录客户端的用户信息"

      当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。

      JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。

        创建 cookie,如:document.cookie="username=John Doe";

       还可以为 cookie 添加一个过期时间(以 UTC 或 GMT 时间)。默认情况下,cookie 在浏览器关闭时删除

        document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT";

      您可以使用 path 参数告诉浏览器 cookie 的路径。默认情况下,cookie 属于当前页面。

        document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";

       读取 cookie,如: var x = document.cookie;  document.cookie 将以字符串的方式返回所有的 cookie,类型格式: cookie1=value; cookie2=value; cookie3=value;

       修改 cookie,如:document.cookie="username=John Smith; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";   修改 cookie 类似于创建 cookie,旧的 cookie 覆盖。

       删除 cookie,如:document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";   删除 cookie 非常简单。您只需要设置 expires 参数为以前的时间即可,删除时不必指定 cookie 的值。

     Cookie 字符串

      如果您设置了新的 cookie,旧的 cookie 不会被覆盖。 新 cookie 将添加到 document.cookie 中,所以如果您重新读取document.cookie,那么数据是这样的:cookie1=value; cookie2=value;

      // 设置cookie值
      // cookie的名称为cname,值为cvalue,过期时间为exdays
      function setCookie(cname,cvalue,exdays){
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires=" + d.toGMTString();
        document.cookie = cname + '=' + cvalue + ';' + expires;
      }

      //获取cookie值
      // cookie的名称为cname
      // 创建一个文本变量用于检索指定 cookie :cname + "="
      function getCookie(cname){
        var name = cname + '=';
        //使用分号来分割document.cookie字符串,
        // 并将分割后的字符串数组赋值给 ca
        var ca = document.cookie.split(';');
        for(var i = 0; i < ca.length; i++){ //循环 ca 数组
          var c = ca[i].trim(); //去除前后空格
          if(c.indexOf(name)==0){
            return c.substring(name.length, c.length);
          }
        }
        return '';//如果没有找到 cookie, 返回 "" (空字符串)
      }

      //检测cookie的值
      btn1.onclick = function(){
        var username = getCookie('username');
        if(username != ''){
          alert('Welcome again' + username);
        }else{
          username = prompt('Please enter your name:', '');
          if(username != '' && username != null){
            setCookie('username', username,365);
          }
        }
      }

  • 相关阅读:
    泛型
    BigInteger和BigDecimal大数相加问题
    集合(Collection,set,list,map)
    [转]如何从MySQL官方Yum仓库安装MySQL5.6
    CentOS Linux使用crontab运行定时任务详解
    [转]Mysql自动备份并保存近15天记录脚本
    centos6.5 mysql安装+远程访问+备份恢复+基本操作+卸载
    vsftpd安装
    [转]CENTOS 6.5 配置YUM安装NGINX+服务器负载均衡
    [转]apache的源码安装详细过程全纪录
  • 原文地址:https://www.cnblogs.com/hermit-gyqy/p/10690873.html
Copyright © 2020-2023  润新知