如果禁用了javascript,如何加载外部css文件。
应该适用于IE 6到9,Firefox Google Chrome,Safari
我尝试了<noscript>
并将<noscript>
保留在内部,但它在IE 7中不起作用
答案 0 :(得分:13)
我会反过来做。始终加载包含前缀为body.jsEnabled
的规则的css。然后只需通过javascript在主体上添加一个“jsEnabled”类。
这种“发现能力”的方式大约是http://www.modernizr.com/的工作方式。
答案 1 :(得分:9)
我在IE7中测试过这个方法,但它确实有效。在<style>
<link>
代码(而不是<noscript>
<noscript>
<style type="text/css">
@import url (yourexternalfile.css);
body{
background-color: purple;
}
</style>
</noscript>
编辑:
这是在IE7中工作的屏幕截图。
答案 2 :(得分:3)
试试这个:
<html>
<head>
<script type="text/javascript"> document.write('<'+'!--'); </script>
<link rel="stylesheet" type="text/css" href="non-js.css">
<!-- -->
</head>
<body>
<script type="text/javascript"> document.write('<'+'!--'); </script>
Visible when no-JS
<!-- --> Always visible
</body>
</html>
Hack,但HTML正确。
如果启用了JS,则将注释开始控制标记打印到页面中 - 然后忽略第二个开始标记,结束标记关闭注释内容。
因此,如果启用了JS,link
标记将被注释掉,而不会被下载。
答案 3 :(得分:1)
虽然<noscript>
中不允许<head>
,而<link>
只允许<style>
+ <head>
,您也可以使用此代码:
<link id="noscriptStyle" rel="stylesheet" type="text/css" href="my_external_css_file.css" />
<script type="text/javascript">
document.getElementById('noscriptStyle').parentNode.removeChild(document.getElementById('noscriptStyle'));
</script>
但我自己更喜欢cherouvim发布的方法
答案 4 :(得分:0)
CSS-Files与启用/禁用的javascript无关...
<link rel="stylesheet" type="text/css" href="my_external_css_file.css" />