JavaScriptコードを使用してブラウザの幅を取得する方法は?

Amr Elgarhy:

現在のブラウザーの幅を取得するJavaScript関数を記述しようとしています。

私はこれを見つけました:

javascript:alert(document.body.offsetWidth);

しかし、ボディの幅が100%の場合、失敗するという問題があります。

他にもっと良い機能や回避策はありますか?

トラヴィス :

2017年の更新

私の元の回答は2009年に書かれました。それでも動作しますが、2017年に更新したいと思います。ブラウザーの動作は異なる場合があります。私はjQueryチームがブラウザ間の一貫性を維持する上で素晴らしい仕事をすることを信頼しています。ただし、ライブラリ全体を含める必要はありません。jQueryソースの関連部分は、dimension.jsの37行目にありますここでは、スタンドアロンで動作するように抽出および変更されています。

function getWidth() {
  return Math.max(
    document.body.scrollWidth,
    document.documentElement.scrollWidth,
    document.body.offsetWidth,
    document.documentElement.offsetWidth,
    document.documentElement.clientWidth
  );
}

function getHeight() {
  return Math.max(
    document.body.scrollHeight,
    document.documentElement.scrollHeight,
    document.body.offsetHeight,
    document.documentElement.offsetHeight,
    document.documentElement.clientHeight
  );
}

console.log('Width:  ' +  getWidth() );
console.log('Height: ' + getHeight() );


元の回答

すべてのブラウザーの動作は異なるため、最初に値をテストしてから、正しい値を使用する必要があります。これを行う関数は次のとおりです。

function getWidth() {
  if (self.innerWidth) {
    return self.innerWidth;
  }

  if (document.documentElement && document.documentElement.clientWidth) {
    return document.documentElement.clientWidth;
  }

  if (document.body) {
    return document.body.clientWidth;
  }
}

同様に高さについて:

function getHeight() {
  if (self.innerHeight) {
    return self.innerHeight;
  }

  if (document.documentElement && document.documentElement.clientHeight) {
    return document.documentElement.clientHeight;
  }

  if (document.body) {
    return document.body.clientHeight;
  }
}

getWidth()またはを使用して、スクリプトでこれらの両方を呼び出しますgetHeight()ブラウザのネイティブプロパティが定義されていない場合は、が返されundefinedます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Jqueryコードを使用して現在のブラウザ名を取得する

分類Dev

Unity Web GL htmlコンテナー:ブラウザーの幅に基づいてウィンドウの幅を「拡大」する方法は?

分類Dev

JavaScriptを使用してブラウザー言語を取得する方法

分類Dev

セレンウェブドライバー(nodejs)を使用して現在のブラウザー名を取得する方法はありますか?

分類Dev

特定のブラウザ幅でvbscriptコードを実行する方法

分類Dev

ブラウザのコンソールを使用してユーザーからデータを取得する方法はありますか

分類Dev

セレンウェブドライバーを使用してJavaScriptを介して値を取得する方法は?

分類Dev

Javascriptを使用してブラウザのコンテキストメニュー項目を取得する

分類Dev

職人のコマンドを使用してブラウザでエラーを確認する方法

分類Dev

自動browserify + uglifyを使用してブラウザー用のnode.jsコードを提供する方法

分類Dev

Javaコードを使用してセレンにChromeブラウザのプロキシを設定する方法

分類Dev

デバイスモードのときに「幅」と「デバイス幅」を減らすようにブラウザを取得する方法はありますか?

分類Dev

ブラウザ互換性のあるjqueryを使用してファイルアップロードのbase_64文字列を取得する方法は?

分類Dev

JSFを使用してユーザーのブラウザーIDを取得する方法

分類Dev

capybara webkit -cucumberを使用してcapybaraのブラウザをアップグレードする方法は?

分類Dev

Hugoを使用したブログダウン-コードチャンクの幅を拡張する方法は?

分類Dev

JavaでSelenium WebDriverを使用してブラウザ名を取得する方法は?

分類Dev

JavaScriptを使用してユーザー入力をブラウザに出力する方法は?

分類Dev

Antデザイン-ドラッグしてテーブルの列幅を調整する方法は?

分類Dev

javascriptブラウザ側を使用してビデオカードドライバ名を取得するにはどうすればよいですか?

分類Dev

Seleniumを使用してChromeブラウザコンソールログ[INFO]エントリを取得する方法

分類Dev

ブラウザからitemIDを取得し、入力にエコーする方法は?

分類Dev

JavaScriptを使用してem単位でウィンドウの幅を取得することは可能ですか?

分類Dev

既存のコードでブラウザの幅に基づいて画像のURLを変更する

分類Dev

ブラウザでjsを使用してデータをダウンロードする方法は?

分類Dev

クラウドコードを使用して、特定のFacebook IDを持つユーザーを取得するにはどうすればよいですか?

分類Dev

JavaScriptを使用してブラウザの戻るボタンを停止する方法

分類Dev

imacrosブラウザを使用してJavaScript変数値を抽出する方法は?

分類Dev

Javaコードを使用してクライアントブラウザでJavaScriptが有効になっているかどうかを確認する方法

Related 関連記事

  1. 1

    Jqueryコードを使用して現在のブラウザ名を取得する

  2. 2

    Unity Web GL htmlコンテナー:ブラウザーの幅に基づいてウィンドウの幅を「拡大」する方法は?

  3. 3

    JavaScriptを使用してブラウザー言語を取得する方法

  4. 4

    セレンウェブドライバー(nodejs)を使用して現在のブラウザー名を取得する方法はありますか?

  5. 5

    特定のブラウザ幅でvbscriptコードを実行する方法

  6. 6

    ブラウザのコンソールを使用してユーザーからデータを取得する方法はありますか

  7. 7

    セレンウェブドライバーを使用してJavaScriptを介して値を取得する方法は?

  8. 8

    Javascriptを使用してブラウザのコンテキストメニュー項目を取得する

  9. 9

    職人のコマンドを使用してブラウザでエラーを確認する方法

  10. 10

    自動browserify + uglifyを使用してブラウザー用のnode.jsコードを提供する方法

  11. 11

    Javaコードを使用してセレンにChromeブラウザのプロキシを設定する方法

  12. 12

    デバイスモードのときに「幅」と「デバイス幅」を減らすようにブラウザを取得する方法はありますか?

  13. 13

    ブラウザ互換性のあるjqueryを使用してファイルアップロードのbase_64文字列を取得する方法は?

  14. 14

    JSFを使用してユーザーのブラウザーIDを取得する方法

  15. 15

    capybara webkit -cucumberを使用してcapybaraのブラウザをアップグレードする方法は?

  16. 16

    Hugoを使用したブログダウン-コードチャンクの幅を拡張する方法は?

  17. 17

    JavaでSelenium WebDriverを使用してブラウザ名を取得する方法は?

  18. 18

    JavaScriptを使用してユーザー入力をブラウザに出力する方法は?

  19. 19

    Antデザイン-ドラッグしてテーブルの列幅を調整する方法は?

  20. 20

    javascriptブラウザ側を使用してビデオカードドライバ名を取得するにはどうすればよいですか?

  21. 21

    Seleniumを使用してChromeブラウザコンソールログ[INFO]エントリを取得する方法

  22. 22

    ブラウザからitemIDを取得し、入力にエコーする方法は?

  23. 23

    JavaScriptを使用してem単位でウィンドウの幅を取得することは可能ですか?

  24. 24

    既存のコードでブラウザの幅に基づいて画像のURLを変更する

  25. 25

    ブラウザでjsを使用してデータをダウンロードする方法は?

  26. 26

    クラウドコードを使用して、特定のFacebook IDを持つユーザーを取得するにはどうすればよいですか?

  27. 27

    JavaScriptを使用してブラウザの戻るボタンを停止する方法

  28. 28

    imacrosブラウザを使用してJavaScript変数値を抽出する方法は?

  29. 29

    Javaコードを使用してクライアントブラウザでJavaScriptが有効になっているかどうかを確認する方法

ホットタグ

アーカイブ