2013-06-12 4 views
0

Предполагает ли H5BP, что вы напишете свой код JavaScript и jQuery, чтобы он выполнялся только в том случае, когда окно полностью загружено (используя прослушиватель onload)? Причина, по которой я спрашиваю, заключается в том, что H5BP находит тег сценария включения jQuery в нижней части тега тела, как показано ниже. Тем не менее, скрипт, в котором установлен cookie, не будет работать, если я не переместим элемент сценария jquery.min.js в элемент head, который предшествует телу (и, следовательно, выполнение скрипта cookie). Благодарю.Расположение сценария jQuery в файле Boilerplate HTML5?

<!DOCTYPE html> 
    <head> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
     <title></title> 
     <meta name="description" content=""> 
     <meta name="viewport" content="width=device-width"> 
     <script src="js/vendor/modernizr-2.6.2.min.js"></script> 
    </head> 
    <body> 
     <p>This is HTML5 Boilerplate.</p> 

     <!-- Cookie isn't set when jquery.min.js follows this element block --> 
     <script> 
      var test_profile = { browserWidth: $(window).width() }; 
      document.cookie = "test_profile=" + JSON.stringify(test_profile); 
     </script> 

     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
     <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script> 
    </body> 
</html> 

ответ

0

Это первый <script> блок зависит от JQuery ($(window).width()), поэтому он не может быть использован, прежде чем была загружена Jquery.

Просто переместите этот сценарий печенья после того, как два других <script> блоков:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script> 

<script> 
    var test_profile = { browserWidth: $(window).width() }; 
    document.cookie = "test_profile=" + JSON.stringify(test_profile); 
</script> 
+0

Имеет смысл. Спасибо, Б. – William