JavaScript学习笔记(六)

JavaScript学习笔记(六)

JavaScript Window - 浏览器对象模型

  • 浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。

浏览器对象模型 (BOM)

  • 浏览器对象模型(Browser Object Model (BOM))尚无正式标准。
  • 由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。

Window 对象

  • 所有浏览器都支持 window 对象。它表示浏览器窗口。

  • 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

  • 全局变量是 window 对象的属性。

  • 全局函数是 window 对象的方法。

  • 甚至 HTML DOM 的 document 也是 window 对象的属性之一:

    • window.document.getElementById("header");

    • document.getElementById("header");

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
  •   var w=window.innerWidth
      || document.documentElement.clientWidth
      || document.body.clientWidth;
      
      var h=window.innerHeight
      || document.documentElement.clientHeight
      || document.body.clientHeight;
    

其他 Window 方法

  • window.open() - 打开新窗口
  • window.close() - 关闭当前窗口
  • window.moveTo() - 移动当前窗口
  • window.resizeTo() - 调整当前窗口的尺寸

JavaScript Window Screen

  • window.screen 对象包含有关用户屏幕的信息。

Window Screen

  • window.screen对象在编写时可以不使用 window 这个前缀。
  • 一些属性:
    • screen.availWidth - 可用的屏幕宽度
    • screen.availHeight - 可用的屏幕高度

Window Screen 可用宽度

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

Window Screen 可用高度

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

JavaScript Window Location

  • window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

Window Location

  • window.location 对象在编写时可不使用 window 这个前缀。 一些例子:
  • 一些实例:
    • location.hostname 返回 web 主机的域名
    • location.pathname 返回当前页面的路径和文件名
    • location.port 返回 web 主机的端口 (80 或 443)
    • location.protocol 返回所使用的 web 协议(http: 或 https:)

Window Location Href

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

Window Location Pathname

  • location.pathname 属性返回 URL 的路径名。

Window Location Assign

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

JavaScript Window History

  • window.history 对象包含浏览器的历史

Window History

  • window.history对象在编写时可不使用 window 这个前缀。
  • 保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。
  • 一些方法:
    • history.back() - 与在浏览器点击后退按钮相同
    • history.forward() - 与在浏览器中点击向前按钮相同

Window history.back()

  • history.back() 方法加载历史列表中的前一个 URL。

  • 与在浏览器中点击后退按钮是相同的。

Window history.forward()

  • history forward() 方法加载历史列表中的下一个 URL。

  • 与在浏览器中点击前进按钮是相同的。

JavaScript Window Navigator

  • window.navigator 对象包含有关访问者浏览器的信息。

Window Navigator

  • window.navigator 对象在编写时可不使用 window 这个前缀。

  •   <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.language + "</p>";
      document.getElementById("example").innerHTML=txt;
      </script>
    

JavaScript 弹窗

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

警告框

  • 警告框经常用于确保用户可以得到某些信息。
  • 当警告框出现后,用户需要点击确定按钮才能继续进行操作。
语法
  • window.alert("sometext");

确认框

  • 确认框通常用于验证是否接受用户操作。
语法
  • window.confirm("sometext");

提示框

  • 提示框经常用于提示用户在进入页面前输入某个值。
  • 当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。
  • 如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。
语法
  • window.prompt("sometext","defaultvalue");

换行

  • 弹窗使用 反斜杠 + “n”(\n) 来设置换行。

JavaScript 计时事件

  • 通过使用 JavaScript,我们有能力做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。

setInterval()

  • 间隔指定的毫秒数不停地执行指定的代码。

  • setInterval(function(){alert("Hello")},3000);每三秒弹出一次

  •   显示当前时间
      var myVar=setInterval(function(){myTimer()},1000);
       
      function myTimer()
      {
          var d=new Date();
          var t=d.toLocaleTimeString();
          document.getElementById("demo").innerHTML=t;
      }
    
  • 停止执行

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

    • 语法window.clearInterval(intervalVariable)

      • 创建计时方法时你必须使用全局变量
        • myVar=setInterval("javascript function",milliseconds);
    •   <p id="demo"></p>
        <button onclick="myStopFunction()">停止</button>
        <script>
        var myVar=setInterval(function(){myTimer()},1000);
        function myTimer(){
            var d=new Date();
            var t=d.toLocaleTimeString();
            document.getElementById("demo").innerHTML=t;
        }
        function myStopFunction(){
            clearInterval(myVar);
        }
        </script>
      

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

  • 语法myVar= window.setTimeout("javascript function", milliseconds);

  • setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 myVar 的变量中。假如取消这个 setTimeout(),你可以使用这个变量名来指定它。

  • setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 “alert(‘5 seconds!’)”,或者对函数的调用,诸如 alertMsg。

  • 第二个参数指示从当前起多少毫秒后执行第一个参数。

停止执行
  • clearTimeout() 方法用于停止执行setTimeout()方法的函数代码。
  • 语法window.clearTimeout(timeoutVariable)

JavaScript Cookie

  • Cookie 用于存储 web 页面的用户信息。

  • Cookie 的作用就是用于解决 “如何记录客户端的用户信息”:

    • 当用户访问 web 页面时,他的名字可以记录在 cookie 中。
    • 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。
  • Cookie 以名/值对形式存储

使用JS创建cookie

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

  • 基础创建语法document.cookie="username=John Doe";

  • 添加过期时间语法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=/";

使用JS读取Cookie

  • var x = document.cookie;

使用 JavaScript 修改 Cookie

  • 类似于创建 cookie

使用 JavaScript 删除 Cookie

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

Cookie 字符串

  • 设置了新的 cookie,旧的 cookie 不会被覆盖。 新 cookie 将添加到 document.cookie 中。
  • 如果需要查找一个指定 cookie 值,您必须创建一个JavaScript 函数在 cookie 字符串中查找 cookie 值。

JavaScript Cookie 实例

  • 创建 cookie 来存储访问者名称

  •   //创建一个函数用于存储访问者的名字
      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 的值
      function getCookie(cname)
      {
        var name = cname + "=";
        var ca = document.cookie.split(';');
        for(var i=0; i<ca.length; i++) 
        {
          var c = ca[i].trim();
          if (c.indexOf(name)==0) return c.substring(name.length,c.length);
        }
        return "";
      }
      
      //检测 cookie 值的函数
      function checkCookie()
      {
        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);
          }
        }
      }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值