我正在使用JavaScript来启用/禁用样式表,使用以下内容:
document.styleSheets[0].disabled = true|false;
这个JS工作正常,但是我希望默认情况下样式表是DISabled。虽然我可以使用上面的JS在页面加载时立即禁用样式表,但这显然不适用于关闭JavaScript的用户。
我试过这样做:
<link rel="stylesheet" href="style.css" disabled />
虽然这会禁用样式表,但JavaScript(或者至少我正在使用的方法)无法再次使用它。我还在“已停用”属性上尝试了所有这些变体:disabled="disabled"
,disabled="true"
和disabled=true
,但这些会产生同样的问题 - 我无法再使用JavaScript启用它们
简而言之,我需要一种使用JavaScript启用/禁用外部样式表的方法,但默认情况下禁用该样式表但不依赖于JavaScript。
非常感谢任何帮助。感谢。
N.B。这种效果可以通过使用两个样式表来实现,第二个覆盖第一个样式表,因此不需要“禁用”属性。但是,如果可能的话,显然最好只使用一个样式表,因此我的问题就在上面。
答案 0 :(得分:11)
您可以使用JavaScript removeAttribute方法。
<html>
<head>
<link id="first_style" rel="stylesheet" href="#" disabled />
<script type="text/javascript">
window.onload = function()
{
document.getElementById('first_style').removeAttribute('disabled');
}
</script>
</head>
<body>
<p>something</p>
</body>
</html>
答案 1 :(得分:2)
为什么不解决问题:如果启用了JavaScript,只加载CSS?
取自this example,您可以使用以下内容:
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
答案 2 :(得分:1)
我认为在这种情况下你可能不得不依赖JavaScript。
如果您认为在需要时提供样式表而不是默认情况下禁用样式表,那么您应该指出它。