问:

我怎样才能获得 windowWidth、windowHeight、pageWidth、pageHeight、screenWidth、screenHeight、pageX、pageY、screenX、screenY,它们适用于所有主流浏览器?

https://i.stack.imgur.com/6xPdH.png

答1:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

您可以使用 jQuery 获取窗口或文档的大小:

// Size of browser viewport.
$(window).height();
$(window).width();// Size of HTML document (same as pageHeight/pageWidth in screenshot).
$(document).height();
$(document).width();

对于屏幕尺寸,您可以使用 screen 对象:

window.screen.height;
window.screen.width;

jQuery 方法 height() 似乎适用于所有元素,并返回一个数字 (46) 而不是像 css('height') ("46px") 这样的字符串。

在处理移动 Safari 时,遗憾的是 jQuery 并不是这个问题的完美解决方案。请参阅第 13 行 github.com/jquery/jquery/blob/master/src/dimensions.js 的注释

@Marco Kerwitz 最糟糕的是我输入了“javascript get window width”,而这个答案的内容在谷歌上。我的一个大减号。

@AdamArold 在不知道事实的情况下停止评论。最初的问题专门要求 JQuery 特定的答案,从那时起,版主已经多次编辑。 vanilla javascript解决方案还有其他答案,如果您不喜欢JQuery,请选择它们。

OP确实要求jquery是一个选项。忍者编辑原始问题以排除它的人在这里有错,而不是人们使用世俗接受的 javascript 库给出合法答案。

答2:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

这包含您需要知道的一切:Get viewport/window size

但简而言之:

var win = window,doc = document,docElem = doc.documentElement,body = doc.getElementsByTagName('body')[0],x = win.innerWidth || docElem.clientWidth || body.clientWidth,y = win.innerHeight|| docElem.clientHeight|| body.clientHeight;
alert(x + ' × ' + y);

Fiddle

请停止编辑此答案。它现在已经被不同的人编辑了 22 次,以匹配他们的代码格式偏好。还指出,如果您只想针对现代浏览器,则不需要这样做 - 如果是这样,您只需要以下内容:

const width  = window.innerWidth || document.documentElement.clientWidth ||
document.body.clientWidth;
const height = window.innerHeight|| document.documentElement.clientHeight||
document.body.clientHeight;console.log(width, height);

为什么不 g = document.body ?

@apaidnerd:IE8 等违反标准的浏览器不支持 document.body。但是,IE9 可以。

@MichaelMikowski 这不是真的!甚至 IE5 也支持 document.body。

@nux 我已经纠正了,我已经确认支持 IE8。我知道,尽管我们最近定位的至少一个浏览器不支持 document.body,但我们不得不更改为使用 getElementsByTagName 方法。但我想我记错了浏览器。对不起!

我只想非常古怪地指出,一个字母的变量名从来都没有帮助。

答3:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

这是一个使用纯 JavaScript (Source) 的跨浏览器解决方案:

var width = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;var height = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;

这更好,因为如果您能够在加载过程中足够早地调用脚本(通常是这个想法),那么 body element 将返回 undefined 的值,因为 dom 尚未加载。

哈!旧线程,但谢谢!我想我是那些试图在可能的情况下至少支持回到 IE8 的老“白痴”之一,以造福于数量惊人的老年家庭用户,他们在他们的机器着火之前永远不会停止使用 XP。我厌倦了提问,而不是得到答案,只被“停止支持 IE8 !!”投票否决。作为评论。再次感谢!这在我完成的纯 javascript 照片缩放中为我解决了一个问题。它在 IE8 上有点慢,但现在至少它可以工作了!!! :-)

@Randy 旧的 Windows XP 机器不能简单地运行新版本的 Fire-Fox 或其他什么吗?

@WinEunuuchs2Unix 自从我在 2016 年评论说答案解决了我的问题,为什么切换浏览器很重要?您不能告诉您的网站访问者切换浏览器。如果网站不工作,他们就会离开。不,你不能在 Windows XP 机器上加载最新的 Firefox 浏览器。

@WinEunuuchs2Unix 有许多环境无法详细说明哪些需要正在运行的应用程序的特定版本。原因有很多,包括升级的便利性、对所使用版本的信心、认证应用程序新版本的开销、升级和培训用户的成本等等。我从事过这样的项目,我们不得不在 eBay 上购买替换电脑,因为它们不再是新的。合同是这样写的。

答4:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

一种获取可用屏幕尺寸的非 jQuery 方法。 window.screen.width/height 已经提出,但为了响应式网页设计和完整性,我认为值得一提的是这些属性:

alert(window.screen.availWidth);
alert(window.screen.availHeight);

http://www.quirksmode.org/dom/w3c_cssom.html#t10:

availWidth 和availHeight - 屏幕上的可用宽度和高度(不包括操作系统任务栏等)。

答5:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

但是当我们谈论响应式屏幕时,如果我们出于某种原因想要使用 jQuery 来处理它,

window.innerWidth, window.innerHeight

给出正确的测量值。即使它消除了滚动条的额外空间,我们也不必担心调整该空间:)

答6:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

完整的 2020

我很惊讶这个问题大约有 10 年的时间,而且到目前为止似乎还没有人给出完整的答案(有 10 个值)。所以我仔细分析了OP问题(尤其是图片)并发表了一些评论

坐标系的中心 (0,0) 在视口中(没有条形和主边框的浏览器窗口)左上角和轴指向右下方(在 OP 图片上标记的内容),因此 pageX、pageY、screenX 的值, screenY 必须为负数(如果页面很小或未滚动则为零)

对于 screenHeight/Width OP 想要计算屏幕高度/宽度,包括系统菜单栏(例如在 MacOs 中) - 这就是为什么我们不使用 .availWidth/Height (不计算它)

对于 windowWidth/Height OP 不想计算滚动条的大小,所以我们使用 .clientWidth/Height

screenY - 在下面的解决方案中,我们将其菜单/tabls/url 栏的高度添加到浏览器左上角的位置(window.screenY)。但是,如果下载底部栏出现在浏览器中和/或如果开发人员控制台在页面底部打开,则很难计算该值 - 在这种情况下,该值将在下面的解决方案中增加该栏/控制台高度的大小。可能无法读取条形/控制台高度的值进行校正(没有一些技巧,例如要求用户在测量之前关闭该条/控制台…)

pageWidth - 如果 pageWidth 小于 windowWidth,我们需要手动计算 子元素的大小以获得该值(我们在下面的解决方案中的 contentWidth 中进行示例计算 - 但通常这对于这种情况可能很困难)

为简单起见,我假设 margin=0 - 如果不是,那么在计算 pageWidth/Height 和 pageX/Y 时应该考虑这个值

function sizes() { let contentWidth = […document.body.children].reduce( (a, el) => Math.max(a, el.getBoundingClientRect().right), 0) - document.body。 getBoundingClientRect().x; return { windowWidth: document.documentElement.clientWidth, windowHeight: document.documentElement.clientHeight, pageWidth: Math.min(document.body.scrollWidth, contentWidth), pageHeight: document.body.scrollHeight, screenWidth: window.screen.width, screenHeight : window.screen.height, pageX: document.body.getBoundingClientRect().x, pageY: document.body.getBoundingClientRect().y, screenX: -window.screenX, screenY: -window.screenY - (window.outerHeight- window.innerHeight), } } // 测试函数 show() { console.log(sizes()); } body { 边距:0 } .box { 宽度:3000px;高度:4000px;背景:红色; } 注意:stackoverflow 片段为 screenX-Y 提供了错误的值,但如果您将此代码直接复制到您的页面,这些值将是正确的 计算

我在 MacOs High Sierra 上的 Chrome 83.0、Safari 13.1、Firefox 77.0 和 Edge 83.0 上对其进行了测试

感谢您的现代答案。我希望它在页面顶部被进一步投票。快速提问,调整窗口大小时如何重新运行函数?

@WinEunuuchs2Unix 您可以使用调整大小事件。请参阅 developer.mozilla.org/en-US/docs/Web/API/Window/resize_event 或此 Stackoverflow 帖子:stackoverflow.com/a/18520448/4945601

答7:

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

https://i.stack.imgur.com/cERBs.png

答8:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

function wndsize(){var w = 0;var h = 0;//IEif(!window.innerWidth){if(!(document.documentElement.clientWidth == 0)){//strict modew = document.documentElement.clientWidth;h = document.documentElement.clientHeight;} else{//quirks modew = document.body.clientWidth;h = document.body.clientHeight;}} else {//w3cw = window.innerWidth;h = window.innerHeight;}return {width:w,height:h};
}
function wndcent(){var hWnd = (arguments[0] != null) ? arguments[0] : {width:0,height:0};var _x = 0;var _y = 0;var offsetX = 0;var offsetY = 0;//IEif(!window.pageYOffset){//strict modeif(!(document.documentElement.scrollTop == 0)){offsetY = document.documentElement.scrollTop;offsetX = document.documentElement.scrollLeft;}//quirks modeelse{offsetY = document.body.scrollTop;offsetX = document.body.scrollLeft;}}//w3celse{offsetX = window.pageXOffset;offsetY = window.pageYOffset;}_x = ((wndsize().width-hWnd.width)/2)+offsetX;_y = ((wndsize().height-hWnd.height)/2)+offsetY;return{x:_x,y:_y};
}
var center = wndcent({width:350,height:350});
document.write(center.x+';');
document.write(center.y+';');
document.write('');

答9:

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。

您还可以获得 WINDOW 的宽度和高度,避免浏览器工具栏和其他东西。它是浏览器窗口中真正可用的区域。

为此,请使用:window.innerWidth 和 window.innerHeight 属性 (see doc at w3schools)。

在大多数情况下,这将是最好的方式,例如,显示一个完美居中的浮动模式对话框。它允许您计算窗口上的位置,无论使用浏览器的分辨率方向或窗口大小。

答10:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

使用“控制台”或单击“检查”后检查任何网站当前加载页面的高度和宽度。

步骤1:单击鼠标右键并单击“检查”,然后单击“控制台”

第 2 步:确保您的浏览器屏幕不应处于“最大化”模式。如果浏览器屏幕处于“最大化”模式,您需要先单击最大化按钮(位于右上角或左上角)并取消最大化。

第 3 步:现在,在大于号 (‘>’) 之后写入以下内容,即

       > window.innerWidthoutput : your present window width in px (say 749)> window.innerHeightoutput : your present window height in px (say 359)

答11:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

与屏幕尺寸相关的完整指南

JavaScript

对于高度:

document.body.clientHeight  // Inner height of the HTML document body, including padding // but not the horizontal scrollbar height, border, or marginscreen.height               // Device screen height (i.e. all physically visible stuff)
screen.availHeight          // Device screen height minus the operating system taskbar (if present)
window.innerHeight          // The current document's viewport height, minus taskbars, etc.
window.outerHeight          // Height the current window visibly takes up on screen // (including taskbars, menus, etc.)

注意:当窗口最大化时,这将等于 screen.availHeight

对于宽度:

document.body.clientWidth   // Full width of the HTML page as coded, minus the vertical scroll bar
screen.width                // Device screen width (i.e. all physically visible stuff)
screen.availWidth           // Device screen width, minus the operating system taskbar (if present)
window.innerWidth           // The browser viewport width (including vertical scroll bar, includes padding but not border or margin)
window.outerWidth           // The outer window width (including vertical scroll bar,// toolbars, etc., includes padding and border but not margin)

jQuery

对于高度:

$(document).height()    // Full height of the HTML page, including content you have to // scroll to see$(window).height()      // The current document's viewport height, minus taskbars, etc.
$(window).innerHeight() // The current document's viewport height, minus taskbars, etc.
$(window).outerHeight() // The current document's viewport height, minus taskbars, etc.                         

对于宽度:

$(document).width()     // The browser viewport width, minus the vertical scroll bar
$(window).width()       // The browser viewport width (minus the vertical scroll bar)
$(window).innerWidth()  // The browser viewport width (minus the vertical scroll bar)
$(window).outerWidth()  // The browser viewport width (minus the vertical scroll bar)

参考:https://help.optimizely.com/Build_Campaigns_and_Experiments/Use_screen_measurements_to_design_for_responsive_breakpoints

原文链接:https://www.huntsbot.com/qa/nbMm/get-the-size-of-the-screen-current-web-page-and-browser-window?lang=zh_CN&from=csdn

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

获取屏幕、当前网页和浏览器窗口的大小相关推荐

  1. html中获取浏览器窗口宽度,JavaScript 获取浏览器窗口的大小

    简明现代魔法 -> JavaScript -> JavaScript 获取浏览器窗口的大小 JavaScript 获取浏览器窗口的大小 2010-04-16 程序演示: 获取浏览器当前窗口 ...

  2. Get Window Titles关键字——获取当前已经打开的浏览器窗口的所有Title

    Get Window Titles关键字:获取当前已经打开的浏览器窗口的所有Title:该关键字不需要任何参数 ============================================ ...

  3. Qt中根据pc屏幕分辨率按比例修改窗口的大小

    #ifndef FITWINDOW_H #define FITWINDOW_H #include <QObject> #include <QWidget>/// /// \br ...

  4. html修改当前窗口大小,设置HTML页面和浏览器窗口的大小

    这应该工作. Hello World html, body { width: 100%; height: 100%; margin: 0; padding: 0; background-color: ...

  5. html设置主页面的大小,设置HTML页面和浏览器窗口的大小

    twaddington.. 21 这应该工作. Hello World html, body { width: 100%; height: 100%; margin: 0; padding: 0; b ...

  6. javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度

    一.先来大致了解下基本的信息 上图时一张我从别人的博客中找到的,比较系统形象的展示了一些基本的信息. 二.显示器的屏幕信息 screeen.height:屏幕分辨率的高 screen.width:屏幕 ...

  7. javascript获取屏幕、窗口、元素等的大小

    javascript获取屏幕.窗口.元素等的大小 一. 屏幕大小 ​ 什么是屏幕大小?屏幕大小是指当前所用设备的屏幕的分辨率(浏览器窗口外部显示器的大小),它一般是不变的.它们可以通过javaScri ...

  8. Javascript 获取浏览器窗口中文档(视口)可用尺寸的方法

    摘要: 由于浏览器的差异,许多信息的获取都要考虑兼容性,窗口中文档可用尺寸是一个经常需要用到的信息,由于浏览器不同甚至版本不同,获取的方法也不一样,本文介绍的函数能够兼容各种浏览器,获取这一信息.同时 ...

  9. html中页面缩放为何不居中,浏览器窗口放大缩小后页面内容居中解决方法

    先说下简单的思路: 1.获得窗口的大小,高度,宽度. 2.要知道显示的图片(我这里用图片举例)的大小,宽,高.(我的图片显示设置为 宽:960,高600 ) 3.简单算法,获得的浏览器宽,高 减去 图 ...

最新文章

  1. Juniper的路由器、防火墙、交换机如何恢复出厂配置
  2. javascript this指针详解
  3. xfce4的右键打开终端失效
  4. DOM节点创建(jQuery)
  5. Android仿支付宝UI功能开发,Android 自定义view仿支付宝咻一咻功能
  6. Linux之网络管理(6)ip及路由相关命令
  7. [MySQL FAQ]系列 -- 新年新思想:MySQL也能并发导入数据
  8. 底层实现红黑树_【单选题】下列数据结构中,哪一个是ArrayList类的底层实现( ) A. 数组结构 B. 链表结构 C. 哈希表结构 D. 红黑树结构...
  9. @Resource 注解和 @Autowired 注解的对比
  10. 【数据结构】——逆波兰表达式
  11. 一、玩转小米路由器mini之刷openwrt固件
  12. vuex的模块化管理~~~狂徒李四
  13. HTTP服务器中keep-alive 与 url常见问题
  14. 六十六条经典禅语提升人生境界
  15. wx.downloadFile坑点
  16. 【回忆杀】程序员书房翻杂物,看到初恋的信件,看到奖牌,看到梅西、力宏,他的眼角又湿了.....
  17. Android接入支付宝授权_小白教程
  18. 7.5 ZUFEIOJ E: 守望者的逃离 贪心
  19. Unity3D常用游戏开发插件测评总结
  20. 关于MySQL,你未必知道的!

热门文章

  1. 押对信息流,百度站上全新起点
  2. 查看bpl 引用的dll_BPL与DLL
  3. hdu6097—Mindis(计算几何)
  4. 通用管理系统顶部及侧面导航栏简易制作
  5. ckeditor使用教程
  6. 房屋租赁合同中押金的法律性质分析
  7. 一篇文章让你读懂 OpenStack 的起源、架构和应用
  8. Python爬虫 之 seleniun模块
  9. github 建设网站 自定义绑定域名
  10. 3.3V与5V系统电平兼容的方法探究