注意:这在Google Chrome中完美运行,这是Firefox(42.0)中的一个问题
最终,给定一个打开弹出窗口的页面,我想记住关闭时弹出窗口的属性,并在相同的位置和相同的尺寸重新打开它。
更正式一点,我想做以下事情:
我尝试将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
答案 0 :(得分:0)
Element.getBoundingClientRect()方法返回元素的大小及其相对于视口的位置。
https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect