隐藏名称中带有空格的类

时间:2014-06-26 11:55:50

标签: javascript css greasemonkey

我有这个简单的GreaseMonkey脚本用于隐藏GMail中的东西:

// ==UserScript==
// @name        GMail
// @namespace   Namespace
// @include     https://mail.google.com/*
// @version     1
// @grant       none
// ==/UserScript==

function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}

addGlobalStyle(".mq, .oM, .AT, .Zs { display: none; }");

它工作正常,但我发现我需要在GMail上隐藏一个元素,它显示为:

<div class="P4mo8e gsl0xd hh">

我不确定如何隐藏这些因为我尝试过:

addGlobalStyle(".mq, .oM, .AT, .Zs, .P4mo8e, .gsl0xd, .hh { display: none; }");

但那不起作用,因为该div中的内容仍然存在。

非常感谢任何建议。

由于

2 个答案:

答案 0 :(得分:4)

这些是多个类,而不是一个带空格的类。这意味着您的样式定义不足以覆盖Gmail设置的样式specific。尝试类似:

addGlobalStyle(".P4mo8e.gsl0xd.hh { display: none !important; }")

尽管如果元素具有带有!important标志的内联样式,仍然无法保证工作。

答案 1 :(得分:1)

名称中包含空格。这是一种将多个类应用于HTML元素的方法。所以P4mo8e gsl0xd hh是三个类,可能会应用不同的样式,但它们可能存在以允许JavaScript引用它们。