使用greasemonkey移除和折叠元素

时间:2012-01-01 22:00:23

标签: javascript greasemonkey

我想从网页中删除上部和左侧元素(使用greasemonkey / scriptish),以优化其布局,以便在galaxy tab 10.1中显示它。

网页是tvtv.de,我的第一种方法(我对修补网页完全陌生)是:

// ==UserScript==
// @include     http://www.tvtv.de/*
// ==/UserScript==

var elmDeleted = document.getElementById("header");
elmDeleted.parentNode.removeChild(elmDeleted);
elmDeleted = document.getElementById("main_left");
elmDeleted.parentNode.removeChild(elmDeleted);

可疑元素被消隐,但仍然使用布局中的原始空格。 我也尝试了不同的方法,比如将元素宽度设置为零,隐藏元素(element.style.display =" none")等,但结果总是一样。

是否有可能崩溃'元素,所以他们不会在页面布局中使用任何空间?

非常感谢任何帮助,提前谢谢。

2 个答案:

答案 0 :(得分:2)

实际上它不占用任何空间,因为它不再存在。

页面其余部分未向上移动的原因是因为元素显式位于距顶部100个像素处。例如,请参阅styles.css#main_right的样式:

#main_right
{
    background-color: #FFFFFF;
    /* -------------------- */
    position: absolute;
    left: 180px;
    right: 0px;
    top: 100px;
    /* -------------------- */
    bottom: 21px;
    overflow: visible;
}

您必须手动调整这些位置。

答案 1 :(得分:2)

您正在正确删除/隐藏元素。如果他们相对定位,那么他们会崩溃以填补可用空间。

对于此特定网站,主要内容绝对定位。要折叠元素,请使用:

var css = '#main_left, #main_right { top: 0; }',
    style = document.createElement('style');
    style.appendChild(document.createTextNode(css));
document.body.appendChild(style);