最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一起來學(xué)習(xí)JavaScript的BOM操作

 更新時(shí)間:2022年03月16日 15:36:30   作者:su_zui  
這篇文章主要為大家詳細(xì)介紹了JavaScript BOM操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

window對(duì)象

BOM的核心對(duì)象是window,它表示瀏覽器的一個(gè)實(shí)例。在瀏覽器中,window對(duì)象有雙重角色,它既是通過JavaScript訪問瀏覽器窗口的一個(gè)接口,又是ECMAScript規(guī)定的Global對(duì)象。這意味著在網(wǎng)頁中定義的任何一個(gè)對(duì)象、變量和函數(shù),都以window作為其Global對(duì)象,因此有權(quán)訪問parseInt()等方法。

全局作用域

由于window對(duì)象同時(shí)扮演著ECMAScript中Global對(duì)象的角色,因此所有在全局作用域中聲明的變量、函數(shù)都會(huì)變成window對(duì)象的屬性和方法。來看下面的例子。

image-20220310215154178

我們?cè)谌肿饔糜蛑卸x了一個(gè)變量name和一個(gè)函數(shù)sayName(),它們被自動(dòng)歸在了window對(duì)象名下。于是,可以通過window.name訪問變量name,可以通過window.sayAge()訪問函數(shù)sayName()。由于sayName()存在于全局作用域中,因此this.name被映射到window.name,最終顯示的仍然是正確的結(jié)果。

常見事件

window對(duì)象也有一些自己的事件,這里我們用

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <script>
      window.addEventListener('load', function () {
        var btn = document.querySelector('button');
        btn.addEventListener('click', function () {
          alert('點(diǎn)擊我');
        });
      });
      window.addEventListener('load', function () {
        alert(22);
      });
      document.addEventListener('DOMContentLoaded', function () {
        alert(33);
      });
      // load 等頁面內(nèi)容全部加載完畢,包含頁面dom元素 圖片 flash  css 等等
      // DOMContentLoaded 是DOM 加載完畢,不包含圖片 falsh css 等就可以執(zhí)行 加載速度比 load更快一些
    </script>
  </head>
  <body>
    <button>點(diǎn)擊</button>
  </body>
</html>

調(diào)節(jié)窗口大小

比如下面這個(gè)案例,當(dāng)我們把網(wǎng)頁縮放到800的時(shí)候盒子就會(huì)消失不見。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <style>
      div {
        width: 200px;
        height: 200px;
        background-color: pink;
      }
    </style>
  </head>
  <body>
    <script>
      window.addEventListener('load', function () {
        var div = document.querySelector('div');
        window.addEventListener('resize', function () {
          console.log(window.innerWidth);
          console.log('變化了');
          if (window.innerWidth <= 800) {
            div.style.display = 'none';
          } else {
            div.style.display = 'block';
          }
        });
      });
    </script>
    <div></div>
  </body>
</html>

定時(shí)器setTimeout

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 1. setTimeout
      // 語法規(guī)范:  window.setTimeout(調(diào)用函數(shù), 延時(shí)時(shí)間);
      // 1. 這個(gè)window在調(diào)用的時(shí)候可以省略
      // 2. 這個(gè)延時(shí)時(shí)間單位是毫秒 但是可以省略,如果省略默認(rèn)的是0
      // 3. 這個(gè)調(diào)用函數(shù)可以直接寫函數(shù) 還可以寫 函數(shù)名 還有一個(gè)寫法 '函數(shù)名()'
      // 4. 頁面中可能有很多的定時(shí)器,我們經(jīng)常給定時(shí)器加標(biāo)識(shí)符 (名字)
      // setTimeout(function() {
      //     console.log('時(shí)間到了');
      // }, 2000);
      function callback() {
        console.log('執(zhí)行力');
      }
      var timer1 = setTimeout(callback, 3000);
      var timer2 = setTimeout(callback, 5000);
      // setTimeout('callback()', 3000); // 我們不提倡這個(gè)寫法
    </script>
  </body>
</html>

this指向問題

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <button>點(diǎn)擊</button>
    <script>
      // this 指向問題 一般情況下this的最終指向的是那個(gè)調(diào)用它的對(duì)象
      // 1. 全局作用域或者普通函數(shù)中this指向全局對(duì)象window( 注意定時(shí)器里面的this指向window)
      console.log(this);
      function fn() {
        console.log(this);
      }
      window.fn();
      window.setTimeout(function () {
        console.log(this);
      }, 1000);
      // 2. 方法調(diào)用中誰調(diào)用this指向誰
      var o = {
        sayHi: function () {
          console.log(this); // this指向的是 o 這個(gè)對(duì)象
        },
      };
      o.sayHi();
      var btn = document.querySelector('button');
      // btn.onclick = function() {
      //     console.log(this); // this指向的是btn這個(gè)按鈕對(duì)象
      // }
      btn.addEventListener('click', function () {
        console.log(this); // this指向的是btn這個(gè)按鈕對(duì)象
      });
      // 3. 構(gòu)造函數(shù)中this指向構(gòu)造函數(shù)的實(shí)例
      function Fun() {
        console.log(this); // this 指向的是fun 實(shí)例對(duì)象
      }
      var fun = new Fun();
    </script>
  </body>
</html>

location對(duì)象

轉(zhuǎn)跳頁面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <button>點(diǎn)擊</button>
    <div></div>
    <script>
        var btn = document.querySelector('button');
        var div = document.querySelector('div');
        btn.addEventListener('click', function() {
            // console.log(location.href);
            location.;
        })
        var timer = 5;
        setInterval(function() {
            if (timer == 0) {
                location.;
            } else {
                div.innerHTML = '您將在' + timer + '秒鐘之后跳轉(zhuǎn)到首頁';
                timer--;
            }
        }, 1000);
    </script>
</body>
</html>

location常見方法

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <button>點(diǎn)擊</button>
    <script>
      var btn = document.querySelector('button');
      btn.addEventListener('click', function () {
        // 記錄瀏覽歷史,所以可以實(shí)現(xiàn)后退功能
        // location.assign('http://www.itcast.cn');
        // 不記錄瀏覽歷史,所以不可以實(shí)現(xiàn)后退功能
        // location.replace('http://www.itcast.cn');
        location.reload(true);
      });
    </script>
  </body>
</html>

總結(jié)

瀏覽器對(duì)象模型(BOM)以window對(duì)象為依托,表示瀏覽器窗口以及頁面可見區(qū)域。同時(shí),window對(duì)象還是ECMAScript中的Global對(duì)象,因而所有全局變量和函數(shù)都是它的屬性,且所有原生的構(gòu)造函數(shù)及其他函數(shù)也都存在于它的命名空間下。

  • 在使用框架時(shí),每個(gè)框架都有自己的window對(duì)象以及所有原生構(gòu)造函數(shù)及其他函數(shù)的副本。每個(gè)框架都保存在frames集合中,可以通過位置或通過名稱來訪問。
  • 有一些窗口指針,可以用來引用其他框架,包括父框架。
  • top對(duì)象始終指向最外圍的框架,也就是整個(gè)瀏覽器窗口。
  • parent對(duì)象表示包含當(dāng)前框架的框架,而self對(duì)象則回指window。
  • 使用location對(duì)象可以通過編程方式來訪問瀏覽器的導(dǎo)航系統(tǒng)。設(shè)置相應(yīng)的屬性,可以逐段或整體性地修改瀏覽器的URL。
  • 調(diào)用replace()方法可以導(dǎo)航到一個(gè)新URL,同時(shí)該URL會(huì)替換瀏覽器歷史記錄中當(dāng)前顯示的頁面。架都有自己的window對(duì)象以及所有原生構(gòu)造函數(shù)及其他函數(shù)的副本。每個(gè)框架都保存在frames集合中,可以通過位置或通過名稱來訪問。
  • 有一些窗口指針,可以用來引用其他框架,包括父框架。

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!   

相關(guān)文章

  • 微信小程序自動(dòng)客服功能

    微信小程序自動(dòng)客服功能

    微信小程序最近比較熱,今天小編抽空做了一個(gè)客服機(jī)器人的小程序,下面小編給大家分享微信小程序自動(dòng)客服功能,需要的朋友參考下吧
    2017-11-11
  • JavaScript函數(shù)IIFE使用詳解

    JavaScript函數(shù)IIFE使用詳解

    這篇文章主要介紹了JavaScript函數(shù)IIFE使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • JavaScript設(shè)計(jì)模式之原型模式分析【ES5與ES6】

    JavaScript設(shè)計(jì)模式之原型模式分析【ES5與ES6】

    這篇文章主要介紹了JavaScript設(shè)計(jì)模式之原型模式,簡單描述了原型模式的概念、原理,并結(jié)合實(shí)例形式分析了ES5與ES6實(shí)現(xiàn)原型模式的相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • JavaScript引擎實(shí)現(xiàn)async/await的方法實(shí)例

    JavaScript引擎實(shí)現(xiàn)async/await的方法實(shí)例

    大家應(yīng)該都知道隨著Node 7的發(fā)布,越來越多的人開始研究據(jù)說是異步編程終級(jí)解決方案的async/await,下面這篇文章主要給大家介紹了關(guān)于JavaScript引擎是如何實(shí)現(xiàn)async/await的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • webpack4.x下babel的安裝、配置及使用詳解

    webpack4.x下babel的安裝、配置及使用詳解

    這篇文章主要介紹了webpack4.x下babel的安裝、配置及使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JS中的Replace()傳入函數(shù)時(shí)的用法詳解

    JS中的Replace()傳入函數(shù)時(shí)的用法詳解

    這篇文章主要介紹了JS中的Replace()傳入函數(shù)時(shí)的用法詳解,replace方法的語法是:stringObj.replace(rgExp, replaceText)關(guān)于js replace 傳入函數(shù)的用法,大家通過本文學(xué)習(xí)吧
    2017-09-09
  • js創(chuàng)建數(shù)組的簡單方法

    js創(chuàng)建數(shù)組的簡單方法

    下面小編就為大家?guī)硪黄狫S創(chuàng)建數(shù)組的簡單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • JS模式之簡單的訂閱者和發(fā)布者模式完整實(shí)例

    JS模式之簡單的訂閱者和發(fā)布者模式完整實(shí)例

    這篇文章主要介紹了JS模式之簡單的訂閱者和發(fā)布者模式,以一個(gè)完整實(shí)例形式詳細(xì)分析了JS訂閱者和發(fā)布者模式基本實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • 跟我學(xué)習(xí)javascript創(chuàng)建對(duì)象(類)的8種方法

    跟我學(xué)習(xí)javascript創(chuàng)建對(duì)象(類)的8種方法

    跟我學(xué)習(xí)javascript創(chuàng)建對(duì)象(類)的8種方法,每一種方法都有詳細(xì)的介紹,不知道javascript如何創(chuàng)建對(duì)象的朋友,不要錯(cuò)過這篇文章。
    2015-11-11
  • Threejs實(shí)現(xiàn)滴滴官網(wǎng)首頁地球動(dòng)畫功能

    Threejs實(shí)現(xiàn)滴滴官網(wǎng)首頁地球動(dòng)畫功能

    這篇文章主要介紹了Threejs實(shí)現(xiàn)滴滴官網(wǎng)首頁地球動(dòng)畫效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論

巴南区| 绩溪县| 平湖市| 垣曲县| 莲花县| 邵阳县| 建始县| 榕江县| 澄江县| 漯河市| 遵化市| 中宁县| 桂东县| 浦江县| 贺兰县| 昌邑市| 河间市| 新密市| 八宿县| 博湖县| 邹城市| 松桃| 双鸭山市| 周口市| 娄烦县| 稷山县| 梨树县| 准格尔旗| 大英县| 都安| 嘉义县| 景东| 大荔县| 永善县| 岳池县| 余庆县| 岚皋县| 信阳市| 开化县| 民乐县| 怀化市|