document.styleSheets 数组保存有页面中的每个 style 标记在这个代码中,有 3 个 style 标记,他们都是对 body 的背景和前景进行设置
ssEnable 函数的作用是使指定的样式生效,因为有 3 个,所以要循环
循环中实际只做了一件事:如果不是指定的样式,就将其关闭,否则打开
oldSheet 的作用是保护现场,如果指定的样式不存在,就恢复现场
ssEnable 函数的作用是使指定的样式生效,因为有 3 个,所以要循环
循环中实际只做了一件事:如果不是指定的样式,就将其关闭,否则打开
oldSheet 的作用是保护现场,如果指定的样式不存在,就恢复现场
是不是在循环中,遇到document.styleSheets[i].title == mySheet这一句是真,就会跳出for循环是不是? 例如我输入“sheet2”,那么它第一次循环检测将跳过这个if,第二次循环document.styleSheets[1i].title == sheet2,是不是就跳出了循环。不再继续for了?
if(document.styleSheets[i].title == mySheet)
{
document.styleSheets[i].disabled = false;
change = true;
}
if(document.styleSheets[i].title == mySheet) 检查第 i个是否是准备使用的不是第一个而是第三个
body{
background-color: pink;
color : green;
}
</style>
粉红背景,绿字样式表是后到的覆盖先来的