我正在尝试使用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?
答案 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'));
});