如果禁用javascript,如何加载外部css文件
如果禁用javascript,如何加载外部css文件 应适用于IE6至9、Firefox谷歌浏览器、Safari如果禁用javascript,如何加载外部css文件,javascript,jquery,css,xhtml,Javascript,Jquery,Css,Xhtml,如果禁用javascript,如何加载外部css文件 应适用于IE6至9、Firefox谷歌浏览器、Safari 我尝试了并将放在里面,但在IE7中不起作用CSS文件与启用/禁用的javascript无关 <link rel="stylesheet" type="text/css" href="my_external_css_file.css" /> 我会反过来做。始终加载将包含前缀为body.jsEnabled的规则的css。然后,只需通过javascript在body上添加一个
我尝试了
并将
放在里面,但在IE7中不起作用CSS文件与启用/禁用的javascript无关
<link rel="stylesheet" type="text/css" href="my_external_css_file.css" />
我会反过来做。始终加载将包含前缀为
body.jsEnabled
的规则的css。然后,只需通过javascript在body上添加一个类“jsEnabled”
这种“发现能力”的方式大致就是这样运作的。我已经在IE7中测试过这种方法,它是有效的。将
标记(而不是
放在
@导入url(yourexternalfile.css);
身体{
背景颜色:紫色;
}
编辑:
这是一个在IE7中工作的截图。
试试这个:
<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>
document.write(“虽然
中不允许使用
,而
+
中只允许使用
,但您也可以使用此选项:
<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>
document.getElementById('noscriptStyle').parentNode.removeChild(document.getElementById('noscriptStyle'));
但就我个人而言,我更喜欢cherouvim发布的方法,我不知道这是OP所要求的。他想在禁用js时有条件地加载css。这个问题模棱两可,但我理解它的方式是,他想为没有Javascript的用户包含一个特定的css文件。如果禁用Javascript,我想改变页面的外观。如果使用jQuery,只需执行$(function(){$('body')。addClass('jsEnabled');})
我只想在禁用javascript并希望在所有其他css文件之后保留此css的情况下加载css
。您试图实现的可能是不可能的,但只能通过我描述的方法进行模拟。当然,可能存在更好的解决方案。我尝试了此方法,并首先使用默认css呈现页面(JavaScript关闭)然后应用jsEnabled。结果是启用JavaScript的客户端在加载时出现一个大的闪烁,这看起来很糟糕。你需要尽快应用该类。另外,你是否使用@import css?奇怪。我发现@import和内联css都正确注册了。试着用禁用JavaScript的方式打开。背景是紫色的,文本是紫色的吗用小写字母为你设计样式?这是为我设计的。如果我在IE7中禁用javascript,背景显示为紫色。否则为白色……这就是重点。紫色样式应用于noscript标记中;与h2标记上的小写字母相同。在该页面上,所有样式都加载到noscript标记中,以证明其有效。(当启用JS时,页面将取消样式设置。)在您的情况下,您可以使用@import url('your-no-JS-css'))只在禁用JS时加载CSS。好的,你是说@import可以工作,但不适用于IE7,好的,我会检查其他浏览器。对于这个技巧,我会给+1。是的,看起来就是这样。我很想使用这个,这是我的情况下唯一有效的方法。如果没有启用JS,我想通过外部样式表加载一些自定义字体。如果js已启用,我想通过typekits加载字体,以便在加载字体后触发js事件。
<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>