Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果禁用javascript,如何加载外部css文件_Javascript_Jquery_Css_Xhtml - Fatal编程技术网

如果禁用javascript,如何加载外部css文件

如果禁用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上添加一个

如果禁用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上添加一个类“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>