BOM (ブラウザ オブジェクト モデル)
window.document.getElementById("ヘッダー"); document.getElementById("ヘッダー"); 1. ウィンドウブラウザのウィンドウサイズを取得する
ウィンドウの内側の高さ ウィンドウの内側の幅
ドキュメント.documentElement.クライアント高さ ドキュメント.documentElement.クライアント幅
var 幅 = window.innerWidth|| document.documentElement.clientWidth|| document.body.clientWidth var 高さ = window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight 2. 画面 コンピュータの画面サイズを取得するこのプロパティは、ウィンドウのタスクバーなどのインターフェイス機能を除いた、訪問者の画面の幅と高さをピクセル単位で返します。
3. ウィンドウ ウィンドウを開閉する
<script type="text/javascript"> var 新しいウィンドウ; 関数newWindow() { 新しいウィンドウ = window.open("https://www.baidu.com/","baidu"); } 関数closeWindow() { 新しいウィンドウを閉じます。 } </スクリプト> 4. ブラウザイベント
5. 場所
console.log(場所.href); console.log(場所.ホスト名); console.log(場所.パス名); console.log(場所.ポート); console.log(場所.プロトコル); 6. 歴史ブラウザの履歴では、「window」という接頭辞を付ける必要はありません
7. ナビゲーターはブラウザ関連情報を取得しますウィンドウナビゲーター
エクスポート関数 GetCurrentBrowser() { var エージェント = navigator.userAgent.toLowerCase(); var regStr_ie = /msie [\d.]+;/gi; var regStr_ff = /firefox\/[\d.]+/gi var regStr_chrome = /chrome\/[\d.]+/gi; var regStr_saf = /safari\/[\d.]+/gi; //IE11以下 if (agent.indexOf("msie") > 0) { エージェント.match(regStr_ie) を返します。 } // MSIE フィールドは IE11 バージョンには含まれません if (agent.indexOf("trident") > 0 && agent.indexOf("rv") > 0) { "IE " + agent.match(/rv:(\d+\.\d+)/)[1]を返します。 } //ファイアフォックス (agent.indexOf("firefox")> 0)の場合{ エージェント.match(regStr_ff) を返します。 } //クロム (agent.indexOf("chrome")> 0)の場合{ エージェント.match(regStr_chrome) を返します。 } //サファリ (agent.indexOf("safari") > 0 かつ agent.indexOf("chrome") < 0 の場合){ エージェント.match(regStr_saf) を返します。 } } // OS を取得 関数GetOs()をエクスポートする{ let userAgent = navigator.userAgent.toLocaleLowerCase() //toLocaleLowerCase() は文字を小文字に変換します let wins = [ { sys: 'windows nt 5.0', エイリアス: 'windows 2000', 名前: 'Win2000' }, { sys: 'windows nt 5.1', エイリアス: 'windows xp', 名前: 'WinXP' }, { sys: 'windows nt 5.2', エイリアス: 'windows 2003', 名前: 'Win2003' }, { sys: 'windows nt 6.0', 別名: 'Windows Vista'、 名前: 'WinVista' }, { sys: 'windows nt 6.1', エイリアス: 'Windows 7'、 名前: 'Win7' }, { sys: 'windows nt 6.2', 別名: 'Windows 8'、 名前: 'Win8' }, { sys: 'windows nt 10.0', エイリアス: 'Windows 10'、 名前: 'Win10' }, ] for (wins のうち win とする) { (userAgent.indexOf(win.sys) > -1 || userAgent.indexOf(win.alias) > -1) の場合 { win.name を返す } } } エクスポート関数 getEdition() { var userAgent = navigator.userAgent.toLocaleLowerCase() (userAgent.indexOf("win64") > -1 || userAgent.indexOf("wow64") > -1) の場合 { '64 ビット' を返す } それ以外 { '32ビット'を返す } } エクスポート関数IsPC() { var userAgentInfo = navigator.userAgent; var エージェント = ["Android", "iPhone", 「SymbianOS」、「Windows Phone」、 「iPad」、「iPod」]; var フラグ = true; (var v = 0; v < Agents.length; v++) の場合 { (userAgentInfo.indexOf(エージェント[v]) > 0)の場合{ フラグ = false; 壊す; } } フラグを返します。 } //URLパラメータを取得し、オブジェクトエクスポート関数GetRequest()を返す{ var url = location.search; // URL 内の「?」文字の後の文字列を取得します。var theRequest = {} 文字列を [] とします url.indexOf("?") != -1 の場合 { var str = url.substr(1); strs = str.split("&"); (var i = 0; i < strs.length; i++) の場合 { リクエスト[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); } } リクエストを返します。 } エクスポートconstブラウザ={ バージョン: (function() { u = navigator.userAgent とします。 // アプリを navigator.appVersion とします 戻る { Trident:U.Indexof( 'Trident')> -1、// Ie Kernel Presto:U.indexof( 'presto')> -1、// Opera Kernel WebKit:U.Indexof( 'AppleWebkit') ernel mobile:!! u.match(/applewebkit.*mobile。*/)、//それはモバイルターミナルiOS:!! u.match(i [^;]+;(u;)?cpu。+mac os x/)、// iOSターミナルAndroid:u.indexof( 'android')> | | | | | | | | | | | | | | 'iPhone')> -1、//それはiPhoneですか、それともqqhdブラウザipad:u.indexof( 'ipad')> -1、// iPadですか webApp: u.indexOf('Safari') === -1, // ヘッダーとフッターのないウェブアプリケーションかどうか weixin: u.indexOf('MicroMessenger') > -1, // WeChatかどうか qq: u.match(/\sQQ/i) === 'qq' // QQかどうか } }())、 言語: (navigator.browserLanguage || navigator.language).toLowerCase() } 8. ポップアップ
DOM (ドキュメント オブジェクト モデル)
DOM分類HTML ドキュメントにアクセスして操作するための標準メソッドを定義します。 DOMはHTML文書をツリー構造として表現する HTMLではすべてがノードである
各ノード間の関係は、親子関係\兄弟関係です。プログラム可能なオブジェクトモデルを通じて、JavaScriptは動的なHTMLを作成できるほどのパワーを獲得しました。
DOM オブジェクト
ドキュメントオブジェクト
要素ドキュメントオブジェクト
DOMイベント操作マウスイベント
キーボードイベントクリック時にイベントオブジェクトを取得する
E/イベント
ウィンドウ.イベント
ケース関連情報
e.キー
e.キーコード
e.どれ
タッチスクリーンイベント
特別イベント
フォームイベント
ブラウザの互換性1. ブラウザのスクロールの高さ var height=document.documentElement.scrollTop||document.body.scrollTop var width=document.documentElement.scrollLeft||document.body.scrollLeft
ドキュメント.documentElement.scrollTop ドキュメント.documentElement.scrollLeft
ドキュメント.body.スクロールトップ ドキュメント本体の左スクロール 2. 非インラインスタイル属性を取得する 実際の効果は、タグによって実行されるスタイル属性を取得することです if (window.getComputedStyle) { window.getComponentStyle(dom).幅 }それ以外{ doc.currentStyle.width } 3. イベントオブジェクトを取得する dom.onclick=関数(e){ e=e||ウィンドウイベント } 4. イベントオブジェクトターゲットを取得する Firefoxの下位バージョンと互換性があるが、現在は基本的に使用されていない dom.event = 関数() { e=e||ウィンドウイベント var ターゲット = e.target || e.srcElement } 5. ボタンの値 Firefoxの下位バージョンと互換性があるが、現在は基本的に使用されていない document.onkeyup=関数(e){ e=e||ウィンドウイベント var keyNum=e.keyCode||e.which } 6. イベント監視/イベント登録 関数 myAddEvent(ele,type,fun){ addEventListenerメソッドが存在するかどうかを判定する if(ele.addEventListener){ ele.addEventListener(型、関数) }それ以外{ ele.attachEvent('on'+type,fun) } } 7. イベント処理関数を削除する 関数 delFun(要素,型,関数){ if(ele.removeEventListener){ ele.removeEventListener(type,fun) }それ以外{ ele.detachEvent('on'+type,fun) } } 8. イベント配信を防ぐ 関数stopBBle(e){ if(e.stopPropagation){ e.stopPropagation() }それ以外{ e.cancelBubble=true } } 9. デフォルトイベントの実行を防止する if(e.preventDefault){ e.preventDefault }それ以外{ e.returnValue=false } 10. Ajax オブジェクト xhr にします。 試す{ //通常の青いフラグ xhr=new XMLHttpRequest() }キャッチ(e){ //IE の下位バージョンと互換性あり xhr=new ActiveXObject('Microsoft.XMLHTTP') } xhr.open('post','url') xhr.setRequestHeader('コンテンツタイプ','アプリケーション/x-www/フォームURLエンコード') xhr.send('名前=111&年齢=222') //標準ブラウザ xhr.onload = function(){} //互換性の記述 xhr.onreadystatechange=function(){ xhr.readystate==4の場合{ reg=/^a\d{2}$/ とします もしres.test(xhr.status)が コンソール.lof(json.parse(xhr.response)) } } } 互換性のある書き込み、パッケージングツール検証コード生成機能 関数mySetVc() { var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXUZ'; var newStr = ''; (var i = 1; i <= 6; i++) の場合 { var num = parseInt(Math.random() * str.length) (newStr.indexOf(str[num]) === -1)の場合{ newStr += str[num]; } それ以外 { 私 - ; } } newStr を返します。 } アドレスバーのデータ情報を取得する 関数 getUrlVal() { // 1、アドレスバーパラメータ文字列を取得します。let str = decodeURI(window.location.search).substr(1); // 結果を保存するオブジェクトを作成します。let obj = {}; // 2 セミコロンとスペースの変換に従って配列に変換 const arr1 = str.split('&') // 3 ループ変数配列、= 等号に従ってデータ文字列を配列に分割します arr1.forEach(v => { arr2 = v.split('=') とします。 obj[arr2[0]] = arr2[1]; }) obj を返します。 } テーブル関数を生成する // パラメータ 1: array、参照するデータ配列 // パラメータ 2: label、書き込むラベル オブジェクト function mySetTable(array, element) { var str = ''; 配列.forEach(関数(v, k) { str + = '<tr>'; (var キー v) { str += `<td>${v[key]}</td>`; } str += `<td><button index="${k}">削除</button></td>` str + = '</tr>'; }); 要素.innerHTML = str; var oBtns = document.querySelectorAll('ボタン'); mySetButton(oBtns、配列、要素); } 削除効果機能をボタンにバインドする // パラメータ 1、ボタン配列 // パラメータ 2、データ配列 // パラメータ 3、コンテンツを書き込むラベル オブジェクト function mySetButton(BtnArray, array, element) { BtnArray.forEach(関数(v) { v.onclick = 関数(){ var bool = window.confirm('OK、削除しますか'); if (ブール) { var インデックス = v.getAttribute('index'); 配列.splice(インデックス、1); mySetTable(配列、要素); } } }) } リスナーイベントの互換性関数を処理する // パラメータ 1: イベントをバインドする必要があるタグオブジェクト // パラメータ 2: バインドするイベントタイプ、 // パラメータ3: バインドするイベント処理関数 function myAddEvent(element, type, fun) { 要素を追加する場合 // 通常のブラウザ element.addEventListener(type, fun); } それ以外 { // 低バージョン IE ブラウザ element.attachEvent('on' + type, fun); } } CSSスタイル関数を取得する // パラメータ 1、属性が必要なタグオブジェクト // パラメータ 2、属性が必要な属性名 function myGetStyle(element, type) { if (window.getComputedStyle) { window.getComputedStyle(要素)[type]を返します。 } それ以外 { element.currentStyle[type]を返します。 } } クッキー機能を設定する // パラメータ 1: クッキー キー名 // パラメータ 2: クッキー キー値 // パラメータ 3: クッキーの有効期限 (秒) 関数 mySetCookie(キー, 値, 時間) { // 1、現在の時刻オブジェクトを取得します。const nowTime = new Date(); // 2、現在の時刻のタイムスタンプを取得します --- 単位はミリ秒です let timeStamp = nowTime.getTime(); // 3、タイムスタンプを計算します。現在のタイムスタンプ - 8 時間 + 有効期限 (秒) // 世界標準時である有効期限付きのタイムスタンプを取得します。let newTimeStamp = timeStamp - 8 * 60 * 60 * 1000 + time * 1000; // 4、タイムスタンプを時間オブジェクトに戻します nowTime.setTime(newTimeStamp); // 5. 3 番目のパラメータが渡されない場合に対応 // time が undefined の場合は、3 番目のパラメータがないことを証明し、セッションの有効性を実行し、空の文字列を割り当てます // time が undefined でない場合は、3 番目のパラメータがないことを証明し、nowTime 時間オブジェクト内のタイムスタンプの有効性を実行します let endTime = time === undefined ? '' : nowTime; // 6、クッキーを設定する // クッキーの追加属性を設定します。path=/ // www内のすべてのファイルに設定されたCookieを使用させる document.cookie = `${key}=${value};expires=${endTime};path=/`; } クッキーの特定のデータを取得する 関数myGetCookie() { // 結果を保存するオブジェクトを作成します。let obj = {}; // 1 クッキー文字列を取得する let str = document.cookie; // 2 セミコロンとスペースの変換に従って配列に変換 const arr1 = str.split('; ') // 3 ループ変数配列、= 等号に従ってデータ文字列を配列に分割します arr1.forEach(v => { arr2 = v.split('=') とします。 obj[arr2[0]] = arr2[1]; }) obj を返します。 } 関数fun(){ console.log('これは新しく作成された js ファイルの内容ですが、圧縮しましたか?') } JavaScript の BOM と DOM の詳細な説明については、これで終わりです。より関連性の高い js BOM と DOM コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Ubuntu 20.04 IPアドレスを変更する方法の例
>>: Ubuntu 20.04は静的IPアドレスを設定します(異なるバージョンを含む)
最近、小さなプログラムの開発を勉強して見直しており、学習結果のいくつかをメモしています。公式の We...
1. InnoDBのロック機構InnoDB ストレージ エンジンは、行レベルのロックとトランザクショ...
ファイルの保存とアクセスを容易にするために、FTPサービスが特別に構築されています。 FTP サーバ...
この記事では、配列を走査する 4 つの方法を比較してまとめます。 for ループ: for (let...
マウスが画像の上を通過したときに画像のハイパーリンクを変更する方法:コードをコピーコードは次のとおり...
序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...
この記事では、Linux システムを起動する方法について説明します。ご参考までに、詳細は以下の通りで...
序文最近mysql /usr/local/mysql/bin/mysql -uroot -pパスワー...
この記事では、ブルーグリーン デプロイメントと、nginx を使用してカナリア リリースを最も簡単な...
1. CSSを使用するコードをコピーコードは次のとおりです。スタイル="display:n...
最近、Oracle は Java 14 (または Oracle JDK 14) の一般公開を発表しま...
序文: Mybatis の特殊文字処理、Mybatis の xml ファイル内の特殊文字の処理、ここ...
1. 全体的なアーキテクチャ図他のデータベースと比較すると、MySQL は、そのアーキテクチャがさま...
この記事では、テーブルの編集操作を実現するためのjs+Htmlの具体的なコードを参考までに共有します...
HTML にはデータ属性が含まれていることがよくあります。これらは HTML5 のカスタム属性です。...