【发布时间】:2012-12-04 04:28:12
【问题描述】:
我发现网页上的元素经常被固定在我的位置。我想找到一种方法在我访问的任何网站中禁用 position: fixed CSS 规则。
我编写了一个用户脚本(Firefox、Greasemonkey),它扫描文档中的每个节点并确定它是否有固定的计算样式位置,然后将其覆盖为静态。
有没有更好的方法来实现我的目标?
这是我写的脚本,我现在把它缩小到只有 div:
Array.forEach(
document.querySelectorAll("div")
,function(el) {
if (window.getComputedStyle(el).position === 'fixed') {
el.style.position = 'static';
}
}
);
【问题讨论】:
-
只是想知道为什么要这样做?它不会破坏一些“依赖”固定定位的样式吗?我知道这与问题无关,我只是想知道
-
@Ian 也许他在做截图插件?
-
我已经习惯在桌面上缩放页面,直到主要内容填满窗口,就像在手机上查看页面一样。也许我老了。固定位置元素经常覆盖内容。我认为固定元素一般是脱离页面内容的,所以我不期望有太多的破损。
-
for(var a=document.querySelectorAll("*"),i=0,e;e=a[i];i++)"fixed"==getComputedStyle(e).position&&(e .style.position="static") -Jeremy Ashkenas
-
上一条评论似乎包含零宽度空格,出于某种原因,因此它不是可复制粘贴的(尽管它确实有效)。
标签: javascript css firefox greasemonkey