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

时间:2015-12-07 16:29:54

标签: javascript popup window

  

注意:这在Google Chrome中完美运行,这是Firefox(42.0)中的一个问题

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

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

  1. 用户点击“打开弹出式按钮”
  2. 打开弹出窗口
  3. 用户调整大小并移动弹出窗口
  4. 用户关闭弹出窗口
  5. 用户点击“打开弹出式按钮”
  6. 打开同一位置的弹出窗口,其窗口与用户上次关闭时的尺寸相同。
  7. 我尝试将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

1 个答案:

答案 0 :(得分:0)

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

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