Как загрузить внешний файл CSS, если JavaScript отключен - PullRequest
7 голосов
/ 29 сентября 2010

как загрузить внешний файл CSS, если JavaScript отключен.

Должно работать в IE 6–9, Firefox Google Chrome, Safari

Я пытался <noscript> И сохранял <noscript>внутри, но он не работает в IE 7

Ответы [ 5 ]

13 голосов
/ 29 сентября 2010

Я бы сделал это наоборот. Всегда загружайте CSS, который будет содержать правила с префиксом body.jsEnabled. Затем просто добавьте класс "jsEnabled" в тело через javascript.

Этот способ «раскрытия возможностей» примерно такой, как работает http://www.modernizr.com/.

9 голосов
/ 29 сентября 2010

Я протестировал этот метод в IE7, и он работает.Помещение тегов <style> (вместо <link> в <noscript>

<noscript>
<style type="text/css">
 @import url (yourexternalfile.css);

body{
background-color: purple;
}

</style>
</noscript>

РЕДАКТИРОВАТЬ:

Вот скриншот этой работы в IE7. alt text

3 голосов
/ 29 сентября 2010

Попробуйте это:

<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>

Взломать, но это правильно с HTML. Если JS включен, тогда тег управления запуском комментария печатается на странице - тогда второй начальный тег игнорируется, а конечный тег закрывает закомментированное содержимое Поэтому, если JS включен, тег link будет закомментирован и не загружен вообще.

1 голос
/ 29 сентября 2010

пока <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

0 голосов
/ 29 сентября 2010

CSS-файлы не имеют ничего общего с включенным / отключенным JavaScript ...

<link rel="stylesheet" type="text/css" href="my_external_css_file.css" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...