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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...