当前位置: 首页 > 面试题库 >

如何使用JavaScript代码获取浏览器宽度?

陆和泰
2023-03-14
问题内容

我正在尝试编写JavaScript函数以获取当前浏览器的宽度。

我发现了这个:

javascript:alert(document.body.offsetWidth);

但是,如果身体的宽度为100%,它就会失败。

还有其他更好的功能或解决方法吗?


问题答案:

更新

我的原始答案写于2009年。尽管它仍然有效,但我想在2017年进行更新。浏览器的行为仍然有所不同。我相信jQuery团队在保持跨浏览器的一致性方面做得很好。但是,没有必要包括整个库。在jQuery源代码中,相关部分位于Dimensions.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



 类似资料:
  • 问题内容: 我想检测进入我网站的浏览器的语言(如果是En或Fr)。因此,我可以重定向到En页面或其他页面。 另外,我可以检测移动语言吗? 问题答案: 尝试使用此脚本获取您的浏览器语言

  • 我是JavaFX的新手,我正在编写一个简单的登录应用程序,我想在我的web浏览器中启动它。 我如何获得web浏览器的宽度和高度?是否有一些对象用于此目的,或一个方法,我希望能够调整应用程序的大小,每当浏览器的大小改变。

  • 本文向大家介绍javascript 获取浏览器版本,包括了javascript 获取浏览器版本的使用技巧和注意事项,需要的朋友参考一下 工作中需要通过JS去获取当前使用的浏览器的名字以及版本号,网上大堆资料都有一个关键词是 navigator.appName,但是这个方法获取的浏览器的名字只有两种要么是IE要么就是Netscap,倒是可以用来判断是否使用了IE,但是我想获取具体的浏览器产品名字比如

  • 我正在做一个网站,在那里我添加了一个按钮,标记为“我知道关于你”,当用户点击该按钮,就在它下面的所有用户信息,如他的IP地址,操作系统名称,浏览器名称和版本,请求方法get/post,&更像这个网站,它显示了大部分用户信息 我使用Stackoverflow所做的就是- 暂时我想把信息记录下来,以后我会根据我的需要进行转换,但是到现在我能做什么来收集和显示像这个网站这样的用户的信息

  • 问题内容: 我需要一个命令行工具(或Javascript / PHP,但我认为命令行是一种方式)来进行渲染并获取URL的渲染内容,但是重要的是我不仅要渲染CSS / Html / images,还要渲染Javascript。 例如,诸如“ renderengine http://www.google.es outputfile.html”之类的命令和网络内容(已解析的html和javascript

  • 本文向大家介绍django 使用 request 获取浏览器发送的参数示例代码,包括了django 使用 request 获取浏览器发送的参数示例代码的使用技巧和注意事项,需要的朋友参考一下 获取数据(四种方式) 1. url: 需要正则去匹配     url(r'^index/(num)/$',view.index)     匹配到的参数会自动传入对应的视图函数     也可以给匹配到的参数起名