如何根据屏幕分辨率加载或不加载JS脚本(进入head部分)?

时间:2015-08-06 06:39:08

标签: javascript adaptive-layout

在网站上,我在标签上有这些行

  <script type="text/javascript" src="http://www.domain.com/js/jquery.min.js"></script>
  <script type="text/javascript" src="http://www.domain.com/js/jquery.colorbox.min.js"></script>
  <script type="text/javascript" src="http://www.domain.com/js/inner-code-colorbox.min.js"></script>

正在加载JS代码,不应在便携式系统上加载

有办法吗?

我试过这样的方式:

  <script type="text/javascript" media="only screen and (min-width: 950px)" src="http://www.domain.com/js/jquery.min.js"></script>

但它不起作用

提前谢谢

6 个答案:

答案 0 :(得分:7)

使用此脚本标记替换脚本标记,这将创建其他三个脚本标记,只有窗口宽度大于一定量。

这个答案不依赖于jQuery,所以你可以用它来确定你是否要加载jQuery。

<script>
    if (window.innerWidth > 500) {
        var head = document.getElementsByTagName('head')[0];

        var s1 = document.createElement("script");
        s1.type = "text/javascript";
        s1.src = "http://www.domain.com/js/jquery.min.js";
        head.appendChild(s1);

        var s2 = document.createElement("script");
        s2.type = "text/javascript";
        s2.src = "http://www.domain.com/js/jquery.colorbox.min.js";
        head.appendChild(s2);

        var s3 = document.createElement("script");
        s3.type = "text/javascript";
        s3.src = "http://www.domain.com/js/inner-code-colorbox.min.js";
        head.appendChild(s3);
    }
</script>

答案 1 :(得分:4)

在你的剧本中

 var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
 var head = document.getElementsByTagName('head').item(0);
 if(width > 950){
       var script = document.createElement("script");
       script.type = "text/javascript";
       script.src = "http://www.domain.com/js/jquery.min.js";
       head.appendChild(script);
    }

答案 2 :(得分:2)

尝试这样的事情:

<!DOCTYPE html>
<html>
   <head>
      <script id="waiting"></script>
   </head>
   <body>
      <script>
         (function(){
          if(screen.width > 800) 
             //checks if the screens width is greater than 800
             document.querySelector("#waiting").setAttribute("src", "URL HERE");
         }());
      </script>
   </body>
</html>

答案 3 :(得分:1)

检查Javascript你的屏幕宽度,然后像这样追加你的脚本。

if(window.innerWidth > 950){
    var s = document.createElement("script");
    s.type = "text/javascript";
    s.src = "http://www.domain.com/js/jquery.min.js";
    $("head").append(s);
}

我希望它有所帮助。

答案 4 :(得分:0)

<script>标记不支持media属性。您可以使用JS检查屏幕分辨率,然后根据需要动态注入脚本标记。与可以根据当前分辨率添加或删除规则集的CSS不同,请注意脚本是否运行,因此如果您需要根据当前屏幕尺寸更改某些代码,请在代码本身中添加检查。

<script>
  if (window.innerWidth >= 950) {
    var script = document.createElement('script');
    script.src = 'http://www.domain.com/js/jquery.min.js';
    document.getElementsByTagName('script')[0].insertBefore(script);
  }
</script>

答案 5 :(得分:0)

您可以阅读有关异步(动态)加载脚本的信息。在加载之前,您可以检查分辨率并加载所需的脚本。

您可以过滤服务器端的脚本列表(检查移动设备的标头),并在标头中仅包含所需的脚本。