在我的页面上重新加载CSS

时间:2015-04-08 20:13:37

标签: javascript jquery css

我正在尝试使用GreaseMonkey脚本在JS中创建某种工具栏,我需要高对比度选项。它们已在几页上实现,但我将它们应用于我正在访问的任何网站。 我有按钮,应用高对比度,他们的工作有点好,但我不知道如何恢复默认CSS。当我知道DOM树结构,类,ID等时,我在自己的页面上使用的每个解决方案都很好。但正如我所说,它应该适用于任何页面。

我用来做对比的是:

    var OA_whiteBlack_f = function(){
    $("*").not("video").not("object").not("embed").css("cssText", "background: #000 !important; color: #fff !important;");
    };

正如你所看到的,我添加了一些。不是为了避免改变玩家(在youtube上仍然无效)

如何在页面加载时恢复样式表computet?

1 个答案:

答案 0 :(得分:0)

返回样式的问题是,如果您需要首先存储任何这些元素的现有内联样式,您可以使用data()

请注意,cssText会清除任何现有的内联样式,这可能会在某些页面中出现问题

var $elements = $("*").not("video,object,embed").each(function () {
    var $el = $(this),
        currStyle = $el.attr('style') || '';
    $el.data('stored_style', currStyle ).css("cssText", "background: #000 !important; color: #fff !important;");
});

撤消...遍历所有元素并将样式属性替换为存储值

$elements.each(function () {
    var $el = $(this);
    $el.attr('style', $el.data('stored_style'));
});