代码之家  ›  专栏  ›  技术社区  ›  Jitendra Vyas

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

  •  7
  • Jitendra Vyas  · 技术社区  · 14 年前

    应该在IE6到9,Firefox Google chrome,Safari中工作

    我试过了 <noscript> 保持 <无脚本> 但在IE7里不行

    5 回复  |  直到 14 年前
        1
  •  14
  •   cherouvim    14 年前

    我会反过来做。总是加载css,它将包含前缀为 body.jsEnabled

    这种“发现能力”的方法大概是 http://www.modernizr.com/ 作品。

        2
  •  9
  •   Yahel    14 年前

    我已经在IE7中测试了这个方法,它很有效。放 <style> <link> <noscript>

    <noscript>
    <style type="text/css">
     @import url (yourexternalfile.css);
    
    body{
    background-color: purple;
    }
    
    </style>
    </noscript>
    

    编辑:

    这是在IE7中工作的截图。 alt text

        3
  •  3
  •   gertas    14 年前

    <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,则comment start控制标记将被打印到页面中-然后第二个开始标记将被忽略,结束标记将关闭注释内容。 所以如果启用了JS link 标签将被注释掉,根本不下载。

        4
  •  1
  •   Dr.Molle    14 年前

    虽然 <noscript> 不允许进入 <head> <link> + <style> 只允许进入 <头部>

    <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发布的方法

        5
  •  0
  •   Fidi    14 年前

    <link rel="stylesheet" type="text/css" href="my_external_css_file.css" />