从Javascript中读取非内联CSS样式信息

One*_*erd 4 javascript css

我知道我必须在这里遗漏一些东西,但我似乎无法让它发挥作用.

我使用文档head部分中的样式标记为html文档的主体指定了背景颜色,但是当我尝试通过JavaScript读取它时,我什么也得不到:

<html>
<head>
<style>
body { background-color: #ff0; }
</style>
</head>
<body>
<a href="#" onclick='alert(document.body.style.backgroundColor)'>Click Here</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

..但是,如果我将样式分配为内联,它可以工作:

<html>
<head></head>
<body style='background-color: #ff0;'>
<a href="#" onclick='alert(document.body.style.backgroundColor)'>Click Here</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我知道我遗漏了一些基本的东西,但我的思绪今天不在这个区域 - 谁能告诉我为什么我的第一个场景不起作用?

谢谢

Mat*_*ges 7

styleDOM元素的属性仅指元素的内联样式.

根据浏览器的不同,您可以使用DOM CSS获取元素的实际样式

在firefox中,例如:

var body = document.getElementsByTagName("body")[0];
var bg = window.getComputedStyle(body, null).backgroundColor;
Run Code Online (Sandbox Code Playgroud)

或者在IE中:

var body = document.getElementsByTagName("body")[0];
var bg = body.currentStyle.backgroundColor;
Run Code Online (Sandbox Code Playgroud)