← 返回笔记
interview1 min read

小知识

小知识

小知识

a 标签的 rel = noopener 有什么用

当我们使用 targer=_blank 打开一个新的标签页时, 新页面的 window 对象上有一个属性 opener, 它指向的是前一个页面的 window 对象。因此, 后一个页面就获得了前一个页面的控制权. 甚至在跨域的情况下也可以生效。

案例:使用 window.opener.location.href = 'www.hack.com' 强制更改前一个页面的 url。

使用 rel=noopener 可以把 window.opener 置为空,防止此类情况发生。

为什么获取 offsetTop 会引起重排

offsetTop 获取对象相对于由 offsetParent 属性指定的父坐标(css 定位的元素或 body 元素)距离顶端的高度。

因为 offsetTop 并不是保存好的一个值,而是进行动态计算出来的一个值,在计算过程中会引起页面重排。