Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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 如何覆盖皮肤';通过代码进行设置?_Javascript_Css_Firefox_Firefox Addon_Xul - Fatal编程技术网

Javascript 如何覆盖皮肤';通过代码进行设置?

Javascript 如何覆盖皮肤';通过代码进行设置?,javascript,css,firefox,firefox-addon,xul,Javascript,Css,Firefox,Firefox Addon,Xul,我有一个Firefox扩展,可以更改浏览器的选项卡颜色,如下所示: tabBrowser.tabContainer.childNodes[i].style.backgroundColor=“#8f8”; 这段代码在我的开发配置文件中运行良好,但在工作配置文件中我安装了一个主题(Noia 2.0 eXtreme),它为选项卡设置了自己的外观,因此我的代码无法更改选项卡的颜色。是否可以通过代码覆盖主题的设置 我就是不明白。我找到了皮肤的CSS文件,看起来很简单 选项卡{ -moz外观:无; 填充:

我有一个Firefox扩展,可以更改浏览器的选项卡颜色,如下所示:

tabBrowser.tabContainer.childNodes[i].style.backgroundColor=“#8f8”;
这段代码在我的开发配置文件中运行良好,但在工作配置文件中我安装了一个主题(Noia 2.0 eXtreme),它为选项卡设置了自己的外观,因此我的代码无法更改选项卡的颜色。是否可以通过代码覆盖主题的设置

我就是不明白。我找到了皮肤的CSS文件,看起来很简单

选项卡{
-moz外观:无;
填充:1px 5px 2px 7px;
边框顶部:1px实心;
右边框:2倍实心;
左边框:1px实心;
-moz边框顶部颜色:#FFFFFF;
-moz边框右侧颜色:#808080#404040;
-moz边框左侧颜色:#FFFFFF;
-左上角moz边界半径:8px;
-moz边框半径右上角:8px;
背景色:#CDCED3;
颜色:#606060;
最小高度:20px!重要
}
选项卡[selected=“true”]{
边际上限:0;
填充:1px 7px 4px 9px;
字体大小:粗体;
背景图像:url(“chrome://browser/skin/icons/Bookmark-background.png"重要,;
边框底部:1px实心;
-moz边框底色:#FFFFFF;
颜色:#000000;
}
选项卡:悬停{
颜色:#000000!重要;
}
背景

tabBrowser.tabContainer.childNodes[i].style.setProperty(“背景图像”、“无”、“重要”);
根据您的需要,您可以使用:

tabBrowser.tabContainer.childNodes[i].style.setProperty("background-color", "#8f8", "important");

尝试使用dom检查器:您可以打开元素(选项卡)的chrome文档位置,并查看它是如何派生样式的。这可能会给你一些额外的信息。对不起,我帮不上更多的忙。谢谢你,米海洛,你的提示,我会试试的。我希望有一些通用的方法来解决这样的问题。我相信通过一些巧妙的调整,我可以击败一个特定的皮肤,但如果能够通过代码覆盖任何这样的设置,以确保问题不会发生在其他皮肤上,那就太好了。顺便说一句,你是从覆盖代码中调用这个吗?XUL,或者可能来自XBL(疯狂的问题-但我在XBL中有一些风格问题)嗨,Mihailo。是的,我的代码来自覆盖层。我有一个主扩展窗口,它有一个覆盖,它是XUL,它的JavaScript代码在一个外部文件中。这就是代码的来源。我迷路了。我开始认为Firefox中可能存在一个bug:-(文档中说答案中提供的代码应该覆盖CSS中的设置,但显然不是。可能只是使用
tabBrowser.tabContainer.childNodes[I].style.setProperty(“背景色”,“8f8!重要”)
也可以吗?谢谢你们的回答,伙计们,不幸的是,到目前为止它们都不起作用。这一个tabBrowser.tabContainer.childNodes[i].style.setProperty(“背景色”、“#8f8!重要”);产生了一个错误:参数不够。前一个:tabBrowser.tabContainer.childNodes[i].style.setProperty(“背景色”、“#8f8”,“重要”);在没有皮肤的情况下可以正常工作,但无法改变皮肤的任何东西:-(什么可能导致此问题???计算机坏了…必须修复…重新启动所有程序…清洁显示器…现在代码工作了!可能是灰尘造成的:-)谢谢大家的帮助。