JavaScript BOM學習

来源:https://www.cnblogs.com/wangyuyang1016/archive/2019/11/13/11853325.html
-Advertisement-
Play Games

Mirror王宇陽 2019年11月13日 [首發] 數日沒有更新博文了,覺得不好意思了!這不是,整理了一下JavaScript的一下BOM筆記資料,今天貢獻出來!(HTML DOM也會隨後整理髮表) 筆者在接觸Js之前就聽聞Js的“牛逼”,接觸後發現只要想法夠賊,Js就能給你的賊想法復現 ~ 作者 ...


Mirror王宇陽

2019年11月13日 [首發]

數日沒有更新博文了,覺得不好意思了!這不是,整理了一下JavaScript的一下BOM筆記資料,今天貢獻出來!(HTML DOM也會隨後整理髮表)

筆者在接觸Js之前就聽聞Js的“牛逼”,接觸後發現只要想法夠賊,Js就能給你的賊想法復現 ~

作者主頁:https://www.cnblogs.com/wangyuyang1016/

BOM簡單的說就是瀏覽器對象模型,對BOM的操作就是對瀏覽器的功能和屬性的操作;

BOM的核心是window,它是一個瀏覽器的功能實例,瀏覽器會為HTML文檔創建一個專屬的window對象,併為每一個框架創建額外的window對象。
window對象是BOM的頂層,所有其他對象都是通過window對象衍生的;但是在調用子對象的時候並不強制要求聲明

DOM的document也是window的子對象之一;以下兩種寫法是相同的:

    window.document.getElementById("herd")
    document.getElementById("herd")

window對象常用方法

彈窗

window.alert() 消息框;彈窗會直接顯示一段信息欄位

window.confirm() 確認框;彈窗顯示text欄位的同時給出確認和取消兩個按鈕,返回true和false

window.prompt() 提示框;彈窗顯示欄位和一個輸入框,並返回輸入框內容

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <input type="button" value="警告框" onclick="showalert()" />
        <input type="button" value="確認框" onclick="showconfirm()" />
        <input type="button" value="提示框" onclick="showprompt()" />
        <script>
            function showalert(){
                window.alert("這是一個警告框");
            }
            function showconfirm(){
                window.confirm("這是一個確認框");
            }
            function showprompt(){
                window.prompt("這是一個提示框");
            }
        </script>
    </body>
</html>

瀏覽器視窗信息

window.open() 打開新視窗

window.open( url , name , features , replace )

url:需要載入的網頁URL地址

name:為新視窗命名

features:可選,窗體的特性定義

屬性 特性
height 視窗高度
width 視窗寬度
left 左邊距
top 左上邊距
directories 是否顯示鏈接工具欄
location 是否顯示地址欄
menubar 是否顯示菜單欄
resizable 是否允許調整視窗尺寸
scrollbars 是否顯示滾動條
status 是否顯示狀態欄
toolbar 是否顯示工具欄

window.close() 關閉當前實例化對象的視窗

window.moveTo() 移動當前視窗

window.resizeBy()/resizeTo() 調整視窗

window.focus() 獲得當前對象視窗的焦點

window.blur() 釋放當前對象視窗的焦點

window.print() 列印當前視窗或Frame

window.scrollBy()/scrollTo() 滾動當前視窗總的HTML文檔

setInterval()/clearInterval() 設置定時器

setTimeout()/clearTimeout() 刪除定時器

瀏覽器視窗尺寸

  • IE、Chrome、Firefox、Opera、Safan

    window.innerHeight 瀏覽器視窗的內部高度

    window.innerWidth 瀏覽器視窗的內部寬度

  • IE8以下版本

    document.documentElement.clientHeight 高度

    document.documentElement.clientWidth 寬度

    document.body.clientHeight 高度

    document.body.clientWidth 寬度

通常在JavaScript中,一段較為通用代碼如下:

var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth ;
var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight ; 

視窗頁面絕對居中

// 頁面絕對居中必須設置style屬性: position:absolute;
var left = (w-width)/2;
var top = (h-height)/2;
// 利用margin外邊距的top和left來“絕對居中”在瀏覽器中間
document.getElementById("cen").style.top =  top+"px";
document.getElementById("cen").style.left = left+"px";

瀏覽器信息:navigator

navigator.appCodeName 返回瀏覽器代碼名稱(網景 Mozilla)

navigator.appName 返回瀏覽器名稱

navigator.appVersion 返回瀏覽器版本號

navigator.Platform 返回瀏覽器操作系統

userAgent 返回包含內碼名稱、版本號;用於識別用戶

<input type="button" value="瀏覽器信息" onclick="showversion()"/>
function showversion(){
    // navigator 瀏覽器信息
    var put = document.getElementById("version");
    put.innerHTML = "代號:"+navigator.appCodeName+"<br/>";
    put.innerHTML+= "名稱:"+navigator.appName+"<br/>";
    put.innerHTML+= "版本:"+navigator.appVersion+"<br/>";
    put.innerHTML+= "系統:"+navigator.platform+"<br/>";
    put.innerHTML+= "信息:"+navigator.userAgent+"<br/>";              
}

屏幕對象:screen

屬性對象 特性
screen.height 回顯屏幕高度
screen.width 回顯屏幕寬度
screen.avaiHeight 回顯除任務欄的屏幕高度(可用的高度)
screen.avaiWidth 回顯除系統部件寬度的寬度(可用的深度)
screen.colorDepth 瀏覽器分配的顏色或顏色深度
screen.pixelDepth 返回屏幕的顏色解析度(色彩解析度)
<input type="button" value="屏幕信息" onclick="showscreen()" />
function showscreen() {
    document.getElementById("screen").innerHTML = "屏幕尺寸:"+screen.height+"*"+screen.width+"<br/>";
    document.getElementById("screen").innerHTML+= "視窗尺寸:"+screen.availHeight+"*"+screen.availWidth+"<br/>";
    document.getElementById("screen").innerHTML+= "色彩深度:"+screen.colorDepth+"/色彩解析度:"+screen.pixelDepth+"<br/>";
}

地址對象:location

地址對象整理的是當前的URL信息

屬性 特性
location.href 整個URL字元串
location.protocol URL的通信協議部分的字元子串
location.hostname URL中伺服器名、功能變數名稱子功能變數名稱或IP地址
location.port URL中埠號
location.host hostname + port
location.pathname URL中的文件或路徑名
location.hash URL中的錨點名稱
location.search URL中表示變數的字元子串
location.reload(true/false) 刷新頁面(true/false選擇是否從伺服器刷新)
location.replace(url) 通過url網址刷新當前網頁

歷史對象:history

歷史對象保存著用戶上網的歷史記錄

屬性方法 特性
history.back() 顯示瀏覽器的歷史列表中後退一個網址的網頁
history.forward() 顯示瀏覽器的歷史列表中前進一個網址的網頁
history.go(n)/go(url) 顯示瀏覽器的歷史列表中的第n個網址網頁,大於0表示前進,小於0表示後退,等於0表示刷新當前頁


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在頁面中基本的渲染頁面 這裡的p標簽會顯示 這裡的p標簽不會顯示 ...
  • 只寫路由部分的相關內容 需引入路由包 app.vue 以下兩個在一個main文件夾里 1.veu 2.vue 路由嵌套 加了個children而已 對路由進行分離 main.js router.js ...
  • 尺寸樣式屬性介紹 屬性 | 值 |含義 | | height| auto:自動,瀏覽器會自動計算高度length:使用px定義高度%:基於包含它的塊級對象的百分比高度|設置元素高度 width |同上|設置元素的寬度 height屬性和width屬性 接下來讓我們進入 屬性、 屬性實踐,筆者用 屬性 ...
  • 使用上篇已談過,這篇純代碼!!~~ bable要使用必須加入如下配置: ...
  • webpack安裝時的坑 高版本的webpack除了全局安裝webpack外,還需安裝webpack cli,在本地使用時也一樣需要這樣,不然會出錯 webpack使用是的坑 在原始啟動webpack編譯時不要忘了加 o,在原始文件和要編譯成為的文件目錄中間 要正常使用(方便使用)就要在packag ...
  • [TOC] 什麼是css css: 層疊樣式表 css語法結構: 選擇器 {屬性1:屬性值1} 註釋 CSS三種引入方式 通過link標簽引入外部的css文件(最正規用法) 直接在html頁面上的head內通過style標簽直接書寫css代碼 行內標簽(直接在標簽內部通過style標簽寫)(不推薦使 ...
  • [TOC] form表單 表單能夠獲取用戶輸入,用於向伺服器傳輸數據,從而實現用戶與web伺服器的交互 表單屬性 action 控制數據提交的地址,有三種書寫方式: 不寫 預設就是朝當前這個頁面所在的地址i提交數據 寫全路徑 如(https://www.baidu.com) 只寫路徑尾碼(/inde ...
  • CSS CSS簡述 CSS是什麼?有什麼作用? CSS(Cascading Style Sheets):層疊樣式表。 CSS通常稱為CSS樣式或層疊樣式表。主要用於設置HTML頁面中的文本內容(字體、大小、對齊方式等)、圖片的外形(寬度、邊框樣式、邊距等)以及版式的佈局等外觀顯示樣式。 CSS可以使 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...