JavaScript:BOM編程

今天我要介紹的是JS中有關于BOM編程的知識點內容:BOM編程;

? ? ? ?介紹:BOM全名(Browser Object Model(瀏覽器對象模型))。 是瀏覽器提供的與瀏覽器窗口交互的接口,其核心對象是 window。與 DOM(文檔對象模型)不同,BOM 關注瀏覽器窗口、導航、歷史記錄等瀏覽器層面的操作。

接下來我將逐一介紹BOM編程的相關內容;

以下圖解為BOM樹:

? ? ? window對象意解:document :文檔(包含當前窗口所顯示頁面文檔的所有內容);history:歷史記錄(訪問歷史紀錄);location:地址欄(操作地址欄);sreen(查看屏幕信息)(剩下內容后續文章將會介紹)

? ? ? 所有JS全局對象,函數以及變量均自動成為window對象的成員,實際使用上述對象時可以省略window,例如:window.locationlocation時一樣的。

? ?注:document對象:?HTML標簽對象也是一個節點Node對象?它處于DOM樹的上級。

var a = 10;console.log(a);console.log(window.a);//函數function add(a, b) {return a + b;}console.log(add(1, 2))console.log(window.add(1, 2));// //對象console.log(parseInt('123'))

?效果:

?注解:console.log(window.parseInt('123'))也屬于window對象的成員==》console.log(parseInt('123')),可以通過window對象訪問;

? window內容詳細

close:關閉窗口;setInterval:循環定時器;setTimeout:定時器;clearInterval:清除循環定時器;clearTimeout:清除定時器;parseInt:轉整數;parseFloat:轉小數;innerHeight??/??innerWidth:網頁顯示區域高度? /??網頁顯示區域寬度;

注意:以上在前面的位置都可以加?window?;

innerHeight??/??innerWidth:網頁顯示區域高度? /??網頁顯示區域寬度:

<div id ='dd' style="background: red;width: 100px;"></div><button onclick="window.open('CSwj.html')">點擊一下</button><button onclick="window.location='CSwj.html'">location跳轉</button><!-- <button onclick="window.history.forward()">history前進</button> -->dd.style.width=window.innerWidth;console.log(window.innerHeight)dd.style.height=window.innerHeight+'px';

?效果:

?注解:以上內容效果的寬度不會隨著其屏幕的放大縮小,但是它在會刷新的時候會根據你屏幕的大小取它的高度

location內容詳細先知:

herf:跳轉頁面;reload:重載頁面;

<button onclick=" window.open('CSwj.html')">點擊一下</button><button onclick="window.location='CSwj.html'">location跳轉</button>

?效果:

?跳轉后:

?區別==》<button οnclick="window.open('CSwj.html')">點擊一下</button>?

<button οnclick="window.location='CSwj.html'">location跳轉</button>

?
<input type="text" /><button onclick="window.open('CSwj.html')">點擊一下</button><button onclick="window.location.reload()">location重載</button>?

?效果:

?一個為新開窗口,一個在當前窗口打開;后者可以省略window,單加location的,但是一般是不省略,方便可以理解。

history內容詳細先知:

back:返回;forword:前進;go:指定;

<input type="text" /><button onclick="window.open('CSwj.html')">點擊一下</button><button onclick="window.location='CSwj.html'">location跳轉</button><button onclick="window.history.forward()">history前進</button>   &&<button onclick="window.history.go(1)">go前進</button>      &&<button onclick="window.location.reload()">location重載</button>

效果:

跳轉后:

注解:{? go(-1)??}? 回退;

document內容詳細先知:

ById:根據id屬性獲取指定的元素(單個獲取);byTagName:根據標簽獲取指定的元素(多個獲取);byClassName:根據類樣式class獲取指定的元素(多個獲取);querySelector:根據class樣式查找元素(單個);querySelectorAll:根據class樣式查找所有滿足的元素(多個)。

ById:根據id屬性獲取指定的元素(單個獲取)

<ul><li id = "li1">Scratch</li><li id = "li2">Java</li><li>HTML</li><li>CSS</li><li>JavaScript</li></ul><div class="box"><p class="c1">蘋果</p><p class="c1">香蕉</p><p class="c2">西瓜</p></div><div class="box"><p class="c1">蘋果</p><p class="c1">香蕉</p><p class="c2">蓮霧</p></div><p>茄子</p><script>// 根據id屬性獲取指定的元素(單個獲取)let li = document.getElementById('li1');console.log(li)// let lk = li2;  //非常規寫法,不推薦這個做法console.log(ll)

效果

?byTagName:根據標簽獲取指定的元素(多個獲取)

 //byTagName:根據標簽獲取指定的元素(多個獲取)let kk = document.getElementsByTagName('li')// let kk = document.getElementsByTagName('p')//for 循環  for of // 其中 kk屬于被(遍歷)循環集合,// s屬于每次循環所得之變量for (let s of kk) {console.log(s)}

效果:

byClassName:根據類樣式class獲取指定的元素(多個獲取)

 // byClassName:根據類樣式class獲取指定的元素(多個獲取)let ss = document.getElementsByClassName('c1')for (let s of ss) {console.log(s)}

效果:

querySelector:根據class樣式查找元素(單個)

//querySelector:根據class樣式查找元素(單個)let ss =document.querySelector(".box.c2")console.log(ss);

效果:

querySelectorAll:根據class樣式查找所有滿足的元素(多個)

 //querySelectorAll:根據class樣式查找所有滿足的元素(多個)let ss = document.querySelectorAll('.box .c2')for (let s of ss) {console.log(s)}

效果:

注解:復制給定的? SS? ?在遍歷再通過循環多個之后,所要得到的內容才可以一個一個打印出來,查找方式,只要是樣式之類的,都可以用這個;

總結:希望本篇有關于JS BOM編程的知識點內容能對你帶來一定的幫助,同時非常感謝各位大佬們的點贊與支持,咱們下一篇不見不散。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76801.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76801.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76801.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Memcached緩存系統:從部署到實戰應用指南

#作者&#xff1a;獵人 文章目錄 一、安裝libevent二、安裝配置memcached三、安裝Memcache的PHP擴展四、使用libmemcached的客戶端工具五、Nginx整合memcached:六、php將會話保存至memcached Memcached是一款開源、高性能、分布式內存對象緩存系統&#xff0c;可應用各種需要緩…

解決前后端時區不一致問題

前后端時區不一致導致&#xff1a; 》數據不顯示在前端 》頁面顯示時間有誤 》一些對時間有要求的方法&#xff0c;無法正確執行&#xff0c;出現null值&#xff0c;加上我們對null值有判斷/注解&#xff0c;程序就會報錯中斷&#xff0c;以為是業務邏輯問題&#xff0c;其實…

35.Java線程池(線程池概述、線程池的架構、線程池的種類與創建、線程池的底層原理、線程池的工作流程、線程池的拒絕策略、自定義線程池)

一、線程池概述 1、線程池的優勢 線程池是一種線程使用模式&#xff0c;線程過多會帶來調度開銷&#xff0c;進而影響緩存局部性和整體性能&#xff0c;而線程池維護著多個線程&#xff0c;等待著監督管理者分配可并發執行的任務&#xff0c;這避免了在處理短時間任務時創建與…

驅動開發硬核特訓 · Day 6 : 深入解析設備模型的數據流與匹配機制 —— 以 i.MX8M 與樹莓派為例的實戰對比

&#x1f50d; B站相應的視屏教程&#xff1a; &#x1f4cc; 內核&#xff1a;博文視頻 - 從靜態綁定驅動模型到現代設備模型 主題&#xff1a;深入解析設備模型的數據流與匹配機制 —— 以 i.MX8M 與樹莓派為例的實戰對比 在上一節中&#xff0c;我們從驅動框架的歷史演進出…

Blender安裝基礎使用教程

本博客記錄安裝Blender和基礎使用&#xff0c;可以按如下操作來繪制標靶場景、道路標識牌等。 目錄 1.安裝Blender 2.創建面板資源 步驟 1: 設置 Blender 場景 步驟 2: 創建一個平面 步驟 3: 將 PDF 轉換為圖像 步驟 4-方法1: 添加材質并貼圖 步驟4-方法2&#xff1a;創…

智能手機功耗測試

隨著智能手機發展,用戶體驗對手機的續航功耗要求越來越高。需要對手機進行功耗測試及分解優化,將手機的性能與功耗平衡。低功耗技術推動了手機的用戶體驗。手機功耗測試可以采用powermonitor或者NI儀表在功耗版上進行測試與優化。作為一個多功能的智能終端,手機的功耗組成極…

從代碼學習深度學習 - 多頭注意力 PyTorch 版

文章目錄 前言一、多頭注意力機制介紹1.1 工作原理1.2 優勢1.3 代碼實現概述二、代碼解析2.1 導入依賴序列掩碼函數2.2 掩碼 Softmax 函數2.3 縮放點積注意力2.4 張量轉換函數2.5 多頭注意力模塊2.6 測試代碼總結前言 在深度學習領域,注意力機制(Attention Mechanism)是自然…

學術版 GPT 網頁

學術版 GPT 網頁 1. 學術版 GPT 網頁非盈利版References https://academic.chatwithpaper.org/ 1. 學術版 GPT 網頁非盈利版 arXiv 全文翻譯&#xff0c;免費且無需登錄。 更換模型 System prompt: Serve me as a writing and programming assistant. 界面外觀 References …

MarkDown 輸出表格的方法

MarkDown用來輸出表格很簡單&#xff0c;比Word手搓表格簡單多了&#xff0c;而且方便修改。 MarkDown代碼&#xff1a; |A|B|C|D| |:-|-:|:-:|-| |1|b|c|d| |2|b|c|d| |3|b|c|d| |4|b|c|d| |5|b|c|d|顯示效果&#xff1a; ABCD1bcd2bcd3bcd4bcd5bcd A列強制左對齊&#xf…

MetaGPT深度解析:重塑AI協作開發的智能體框架實踐指南

一、框架架構與技術突破 1.1 系統架構設計 graph TBA[自然語言需求] --> B(需求解析引擎)B --> C{角色路由系統}C --> D[產品經理Agent]C --> E[架構師Agent]C --> F[工程師Agent]D --> G[PRD文檔]E --> H[架構圖]F --> I[代碼文件]G --> J[知識共…

自用:在使用SpringBoot做學生信息管理系統時遇到的問題

1、在做完查詢測試時&#xff0c;一直報出404找不到錯誤&#xff0c;原因是沒有為各個層的實現類添加注解 2、改完之后發現測試沒有數據&#xff0c;是因為我寫的返回值類型為空&#xff0c;應該返回一個List< Student > 3、我沒有想到要寫Result實體類&#xff0c;因為不…

SQLite + Redis = Redka

Redka 是一個基于 SQLite 實現的 Redis 替代產品&#xff0c;實現了 Redis 的核心功能&#xff0c;并且完全兼容 Redis API。它可以用于輕量級緩存、嵌入式系統、快速原型開發以及需要事務 ACID 特性的鍵值操作等場景。 功能特性 Redka 的主要特點包括&#xff1a; 使用 SQLi…

202529 | RocketMQ 簡介 + 安裝 + 集群搭建 + 消費模式 + 消費者組

RocketMQ簡介 RocketMQ 簡介 Apache RocketMQ 是一款開源的 分布式消息中間件&#xff08;Message Queue, MQ&#xff09;&#xff0c;由阿里巴巴團隊研發并捐贈給 Apache 基金會&#xff0c;現已成為頂級項目。它專為 高吞吐、低延遲、高可靠 的分布式場景設計&#xff0c;廣…

Go語言--語法基礎4--基本數據類型--整數類型

整型是所有編程語言里最基礎的數據類型。 Go 語言支持如下所示的這些整型類型。 需要注意的是&#xff0c; int 和 int32 在 Go 語言里被認為是兩種不同的類型&#xff0c;編譯器也不會幫你自動做類型轉換&#xff0c; 比如以下的例子會有編譯錯誤&#xff1a; var value2 in…

競拍商城:電商創新的博弈場與未來趨勢

競拍商城&#xff1a;電商創新的博弈場與未來趨勢 在傳統電商趨于同質化的今天&#xff0c;競拍商城憑借其獨特的交易機制和用戶激勵模式&#xff0c;成為電商領域的新寵。通過結合拍賣的博弈屬性與電商的便捷性&#xff0c;競拍商城不僅重塑了消費體驗&#xff0c;更催生了全…

Linux : 多線程互斥

目錄 一 前言 二 線程互斥 三 Mutex互斥量 1. 定義一個鎖&#xff08;造鎖&#xff09; 2. 初始化鎖 3. 上鎖 4. 解鎖 5. 摧毀鎖 四 鎖的使用 五 鎖的宏初始化 六 鎖的原理 1.如何看待鎖&#xff1f; 2. 如何理解加鎖和解鎖的本質 七 c封裝互斥鎖 八 可重入…

論文閱讀筆記——Reactive Diffusion Policy

RDP 論文 通過 AR 提供實時觸覺/力反饋&#xff1b;慢速擴散策略&#xff0c;用于預測低頻潛在空間中的高層動作分塊&#xff1b;快速非對稱分詞器實現閉環反饋控制。 ACT、 π 0 \pi_0 π0? 采取了動作分塊&#xff0c;在動作分塊執行期間處于開環狀態&#xff0c;無法及時響…

swagger 注釋說明

一、接口注釋核心字段 在 Go 的路由處理函數&#xff08;Handler&#xff09;上方添加注釋&#xff0c;支持以下常用注解&#xff1a; 注解名稱用途說明示例格式Summary接口簡要描述Summary 創建用戶Description接口詳細說明Description 通過用戶名和郵箱創建新用戶Tags接口分…

STM32 HAL庫 OLED驅動實現

一、概述 1.1 OLED 顯示屏簡介 OLED&#xff08;Organic Light - Emitting Diode&#xff09;即有機發光二極管&#xff0c;與傳統的 LCD 顯示屏相比&#xff0c;OLED 具有自發光、視角廣、響應速度快、對比度高、功耗低等優點。在嵌入式系統中&#xff0c;OLED 顯示屏常被用…

Web開發-JavaEE應用動態接口代理原生反序列化危險Invoke重寫方法利用鏈

知識點&#xff1a; 1、安全開發-JavaEE-動態代理&序列化&反序列化 2、安全開發-JavaEE-readObject&toString方法 一、演示案例-WEB開發-JavaEE-動態代理 動態代理 代理模式Java當中最常用的設計模式之一。其特征是代理類與委托類有同樣的接口&#xff0c;代理類…