2014-10-16 66 views
0

我有一個html5主題,它支持js的IE8,但是我的頁面無法通過Google pagespeed測試。我需要推遲JavaScript和CSS。我的頁面有以下標題:無法將JavaScript和CSS一起推遲

<!--[if lte IE 8]><script src="css/ie/html5shiv.js"></script><![endif]--> 
<script src="js/jquery.min.js"></script> 
<script src="js/jquery.dropotron.min.js"></script> 
<script src="js/jquery.scrollgress.min.js"></script> 
<script src="js/skel.min.js"></script> 
<script src="js/skel-layers.min.js"></script> 
<script src="js/init.js"></script> 
<noscript> 
<link rel="stylesheet" href="css/skel.css" /> 
<link rel="stylesheet" href="css/style.css" /> 
<link rel="stylesheet" href="css/style-wide.css" /> 
</noscript> 
<!--[if lte IE 8]><link rel="stylesheet" href="css/ie/v8.css" /><![endif]--> 
</head> 

我試過下面的代碼來推遲,但是我的頁面沒有正確顯示。我不太瞭解JavaScript,但我認爲瀏覽器只渲染腳本,而不是CSS。

<!-- defer.js begins--> 
<script type="text/javascript"> 
    function downloadJSAtOnload() { 
     (function(scripts) { 
      var i = 0, 
       l = scripts.length; 
      for (; i<l; ++i){ 
       var element = document.createElement("script"); 
       element.src = scripts[i]; 
       document.body.appendChild(element); 
      } 
     })(['js/jquery.min.js','js/jquery.dropotron.min.js', 'js/jquery.scrollgress.min.js', 'js/skel.min.js', 'js/skel-layers.min.js', 'js/init.js']); 
    } 

    if (window.addEventListener) 
     window.addEventListener("load", downloadJSAtOnload, false); 
    else if (window.attachEvent) 
     window.attachEvent("onload", downloadJSAtOnload); 
    else window.onload = downloadJSAtOnload; 
</script> 
<!-- defer.js ends --> 
</body> 

這裏是我的文件: javascript css ie

我怎麼能推遲JavaScript和CSS?

回答

0

嘗試從標題中放出腳本標記,並將它們添加到結束標記之前,或在腳本標記上使用僅由現代瀏覽器使用的deferasync屬性。 :)

+0

感謝您的回答。我會嘗試與ie8。 – nikel 2014-10-16 19:24:23

+0

如果它通過PageSpeed測試,請告訴我。 – 2014-10-16 19:25:36

+0

是的,它通過PageSpeed測試 – nikel 2014-10-16 19:28:03

0

希望這個人幫助的js文件

<script type="text/javascript"> 
 
function downloadJSAtOnload() { 
 
var element = document.createElement("script"); 
 

 
element.src = "js/jquery.min.js"; 
 
document.body.appendChild(element); 
 
} 
 

 
if (window.addEventListener) 
 
window.addEventListener("load", downloadJSAtOnload, dfalse); 
 
else if (window.attachEvent) 
 
window.attachEvent("onload", downloadJSAtOnload); 
 
else window.onload = downloadJSAtOnload; 
 
</script>