Firefox:使用相同的属性(位置、宽度/高度)反复打开弹出窗口

Firefox: Open popup window repeatedly with the same properties (position, width/height)

本文关键字:高度 窗口 宽度 位置 属性 Firefox      更新时间:2023-09-26

注意:这在谷歌Chrome中非常有效,在Firefox(42.0)中是个问题

最终,给定一个打开弹出窗口的页面,我想记住关闭时弹出窗口的属性,并以相同的位置和尺寸重新打开它。

更正式一点,我想做以下事情:

  1. 用户点击"打开弹出窗口"按钮
  2. 打开弹出窗口
  3. 用户调整和移动弹出窗口的大小
  4. 用户关闭弹出窗口
  5. 用户点击"打开弹出窗口"按钮
  6. 打开弹出窗口的位置和尺寸与用户上次关闭窗口时相同

我试图将unload事件的位置/维度存储在cookie中,并在下次将这些值传递给window.open(),但总有一些像素偏移。

本质上,我看到的问题是窗口的属性与传递给window.open()的属性不匹配。

小型演示:https://jsfiddle.net/8b2j3352/24(您需要允许弹出窗口)

我得到innerWidth 546 innerHeight 218 outerWidth 561 outerHeight 294 screenX 109 screenY 54

这些值均与提供给window.open():"width=500, height=200, top=50, left=100" 的属性不匹配

你知道在相同的位置和尺寸重新打开弹出窗口的方法吗?

请注意,这在Google Chrome中可以正常工作,它报告innerWidth 500 innerHeight 200 outerWidth 510 outerHeight 260 screenX 100 screenY 50

Element.getBoundingClientRect()方法返回元素的大小及其相对于视口的位置。

https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect