Greasemonkey脚本使固定定位元素静态

时间:2012-12-04 04:28:12

标签: javascript css firefox greasemonkey

我发现网页上的元素已被定位为经常使用我的方式。我想找到一种方法来禁用我访问的任何网站中的position: fixed CSS规则。

我编写了一个用户脚本(Firefox,Greasemonkey),用于扫描文档中的每个节点,并确定其是否已修复计算出的样式位置,然后将其覆盖为静态。

有没有更好的方法来实现我的目标?

这是我写的剧本,我现在把它缩小为div:

Array.forEach(
    document.querySelectorAll("div")
    ,function(el) {
        if (window.getComputedStyle(el).position === 'fixed') {
            el.style.position = 'static';
        }
    }
);

1 个答案:

答案 0 :(得分:5)

如果您的Greasemonkey脚本有效,它可能是消除固定定位样式的最具成本效益的方法。

一些替代方案需要更多努力,但每页使用的CPU /内存更少:

  1. 写下an Add-on

    1. 在加载CSS样式规则时删除它们。 (由于跨域问题,Greasemonkey不能总是这样做。)
    2. 使用Mutation Observers拦截javascript尝试设置position: fixed

    3. 分叉并编译自己的Firefox版本,忽略position: fixed。您可能希望由“黑名单”和“白名单”控制。