gpt4 book ai didi

javascript - CSSRules 为空

转载 作者:太空狗 更新时间:2023-10-29 12:38:47 24 4
gpt4 key购买 nike

我有这个非常简单的 HTML 页面,我正在尝试获取 #poulet 的 CSSRules,但是当我访问 documents.styleSheets[0].cssRules 时,我在 Chrome v5.0.375.55 中遇到了这个错误:
未捕获的类型错误:无法读取 null 的属性“长度”

这是我的代码:

HTML 文件

<!DOCTYPE html> 
<html lang="en">
<head>
<link rel="stylesheet" href="css/test.css" type="text/css" />
<script type="text/javascript" src="js/test.js"></script>
<title>Mozilla</title>
<script>
window.onload = function(){
var test = findKeyframesRule('poulet');
alert(test);
}
</script>
</head>
<body>
<div id="poulet">
allo
</div>
</body>
</html>

JS 文件

function findKeyframesRule(rule)
{
var ss = document.styleSheets;

for (var i = 0; i < ss.length; ++i)
{
for (var j = 0; j < ss[i].cssRules.length; ++j)
{
if (ss[i].cssRules[j].type == window.CSSRule.WEBKIT_KEYFRAMES_RULE && ss[i].cssRules[j].name == rule)
return ss[i].cssRules[j];
}
}
return null;
}

CSS 文件

html, body {
background: #cccccc;
}

#poulet{
border: 10px solid pink;
}

可以找到文件here .我真的需要这方面的帮助,拜托!!! D:

最佳答案

我在你的脚本中发现了这些错误:

  1. 您正在测试类型是否等于 window.CSSRule.WEBKIT_KEYFRAMES_RULE .该属性的值为 8,而所需对象的类型为 1。快速查看 CSSRule object 显示您可能想与 window.CSSRule.STYLE_RULE 进行比较.

  2. 我找不到属性 name , 但最后找到了一个属性 selectorText包含 #poulet .

更正后脚本如下:

function findKeyframesRule(rule)
{
var ss = document.styleSheets;

for (var i = 0; i < ss.length; ++i)
{
for (var j = 0; j < ss[i].cssRules.length; ++j)
{
if (ss[i].cssRules[j].type == window.CSSRule.STYLE_RULE && ss[i].cssRules[j].selectorText == '#'+rule)
return ss[i].cssRules[j];
}
}
return null;
}

但请注意我在评论中提到的问题:这仅在 protocol != "file:" 时有效,

关于javascript - CSSRules 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2961544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com