Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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 如何在切换亮/暗模式时更改iframe的背景色?_Javascript_Html_Jquery_Css_Iframe - Fatal编程技术网

Javascript 如何在切换亮/暗模式时更改iframe的背景色?

Javascript 如何在切换亮/暗模式时更改iframe的背景色?,javascript,html,jquery,css,iframe,Javascript,Html,Jquery,Css,Iframe,我想在切换亮/暗模式时更改嵌入注释部分[这是一个iframe]的背景色。当夜间模式打开时,所有东西都会变暗,除了iframe,它看起来非常难看 我知道iframe的背景色不能通过这样做来改变- iframe { background-color: #fff; color:#000 } body.dark iframe { background-color: #000; color:#fff } 或者通过改变css部分中的任何内容,这是一个可悲的事实 但是有一种方法可以改变“blogger”

我想在切换亮/暗模式时更改嵌入注释部分[这是一个
iframe
]的
背景色。当夜间模式打开时,所有东西都会变暗,除了iframe,它看起来非常难看

我知道iframe的背景色不能通过这样做来改变-

iframe {
background-color: #fff;
color:#000 
}
body.dark iframe {
background-color: #000;
color:#fff 
}
或者通过改变css部分中的任何内容,这是一个可悲的事实

但是有一种方法可以改变“blogger”提供的评论部分的背景颜色

<Group description="body">
<Variable name="body.background" description="Background" color="$(body.background.color)" type="background" default="$(color) none repeat scroll top left" value="$(color) none repeat scroll top left"/>
<Variable name="body.background.color" description="Body background color" type="color" default="#000" value="#000"/>
<Variable name="body.text.color" description="Color" type="color" default="#fff" value="#fff"/>
</Group>

它将注释部分变为黑色,但问题仍然是一样的,它不会切换。iframe在亮模式和暗模式下都保持暗。有什么解决办法吗

我使用以下css方法切换暗/亮模式

<style> 
body {
background-color: #fff;
color:#000 
}
body.dark {
background-color: #000;
color:#fff 
}
</style>

<script>
const body = document.querySelector('body');
function toggleDark() {
 if (body.classList.contains('dark')) {
 body.classList.remove('dark');
 localStorage.setItem("theme", "light");
 } else {
 body.classList.add('dark');
 localStorage.setItem("theme", "dark");
 }
} 
if (localStorage.getItem("theme") === "dark") {
 body.classList.add('dark');
}
</script>

身体{
背景色:#fff;
颜色:#000
}
身体黑{
背景色:#000;
颜色:#fff
}
const body=document.querySelector('body');
函数toggleDark(){
if(body.classList.contains('dark')){
body.classList.remove('dark');
setItem(“主题”、“灯光”);
}否则{
body.classList.add('dark');
setItem(“主题”、“暗”);
}
} 
if(localStorage.getItem(“主题”)=“暗”){
body.classList.add('dark');
}

那么,您可以使用CSS
过滤器:invert()
属性

退房:

  • 这个,
  • CSS&
  • MDN上的应用程序
这个片段应该能说明我的意思

const iframes=document.querySelectorAll('iframe');
函数toggleTheme(){
对于(i=0;i
。是黑色的{
过滤器:倒置(80%);
}

图格尔主题

您的函数在哪里调用?您好,我不太懂技术术语。但是对于你的问题,当在源代码中调用
body
标记时,它会在整个
页面正文上执行。这是个好主意,但我已经尝试过了。它不起作用。我认为改变这一点的唯一方法是操纵
组描述中的某些内容