javascript - 如何获得浏览器的 document.body 相对于屏幕的坐标?

标签 javascript

一定有办法找到它。 我需要找出 document.body 相对于屏幕的坐标 This is as far I have got

我需要找出图像中问号的坐标。这将是文档正文相对于屏幕的位置。该图像描述了我可以使用的属性。 是否可以?

最佳答案

bobbel on WebDeveloper.com建议通过比较内窗宽度和外窗宽度来获取边框的宽度,然后从内外高度差中减去该宽度,以获得可以添加到 screenX 和 screenY 的值的窗口标题的大小:

// compute width of borders
var borderWidth = (window.outerWidth - window.innerWidth) / 2;

// compute absolute page position
var innerScreenX = window.screenX + borderWidth;
var innerScreenY = (window.outerHeight - window.innerHeight - borderWidth) + window.screenY;

当然,这不能保证是正确的——用户的浏览器完全有可能在底部有一个栏,或者在侧面/底部有不同宽度的窗口装饰——但它是顶部的一个准确、实用的解决方法- 我能想到的每个默认浏览器/窗口配置中的级别浏览器窗口。 (当然,这不适用于 iframe 中的页面。)


正确的解决方案是在 whatwg 邮件列表上提出规范,使 innerScreenX 和 innerScreenY 成为标准,如 the discussion on Chromium issue 151983 中所述。关于为 Chrome 实现与 mozInnerScreenX/Y 类似的值。不过,似乎没有人花时间这样做(尽管有 this 疯狂的提议来实现异步 API 函数来“计算”它)。

关于javascript - 如何获得浏览器的 document.body 相对于屏幕的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078770/

相关文章:

javascript - JavaScript 中的元素是如何传递到回调方法中的?

javascript - 如何: dynamically update markers from JSON on google maps

javascript - Google Data API SDK - 过滤器编码/转义

javascript url 安全文件名安全字符串

javascript - 具有本地数据的 jqGrid 树状网格

javascript - 如何使用 Passport JS 管理某些使用 Express 的路线的 session ?

javascript - 如何在 netbeans jsp 应用程序中设置浏览器兼容性

javascript - 如何用 Jest 测试 ASYNC 请求的顺序

javascript - AngularJS 应用程序在 IE8 中出现奇怪的 'ChildNodes of undefined' 错误

javascript - AJAX 并播放一次声音