Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Greasemonkey脚本,用于使固定位置的元素保持静态_Javascript_Css_Firefox_Greasemonkey - Fatal编程技术网

Javascript Greasemonkey脚本,用于使固定位置的元素保持静态

Javascript Greasemonkey脚本,用于使固定位置的元素保持静态,javascript,css,firefox,greasemonkey,Javascript,Css,Firefox,Greasemonkey,我发现网页上的元素经常被固定在我的位置。我想找到一种方法来禁用position:fixedCSS规则在我访问的任何网站上 我编写了一个用户脚本(Firefox,Greasemonkey),它扫描文档中的每个节点,找出它是否有固定的计算样式位置,然后将其覆盖为静态 有没有更好的方法来实现我的目标 这是我写的脚本,我现在已经把它缩小到只有div: Array.forEach( document.querySelectorAll("div") ,function(el) {

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

我编写了一个用户脚本(Firefox,Greasemonkey),它扫描文档中的每个节点,找出它是否有固定的计算样式位置,然后将其覆盖为静态

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

这是我写的脚本,我现在已经把它缩小到只有div:

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

如果您的Greasemonkey脚本有效,它可能是消除固定位置样式的最经济有效的方法

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

  • 写下:

  • 加载CSS样式规则时删除这些规则。(由于跨域问题,Greasemonkey无法始终执行此操作。)
  • 用于拦截设置
    位置的javascript尝试:已修复

  • 分叉并编译您自己的Firefox版本,该版本忽略
    位置:已修复
    。你可能想让它同时受到“黑名单”和“白名单”的控制


  • 只是想知道你为什么要这么做?它不会打破一些“依赖”固定定位的样式吗?我知道这与问题无关,我只是wondering@Ian也许他正在制作一个屏幕截图插件?我已经习惯了在我的桌面上缩放页面,直到主要内容填满窗口,就像在我的手机上查看页面一样。也许我老了。固定位置元素经常覆盖内容。我认为固定元素通常与页面内容分离,所以我不希望有太多的破坏。对于(var a=document.queryselectoral(“*”),I=0,e;e=a[I];I++)“fixed”==getComputedStyle(e.position&(e.style.position=“static”),由于某些原因,前面的注释似乎包含零宽度的空格,因此不可复制(尽管它确实有效)。