javascript - 控制js加载顺序 - 远程加载js




有条件地加载JavaScript文件 (4)

我需要一个JS语句来确定要使用哪个JavaScript文件。

我有一个文件:

<script type="text/javascript" src="js/jquery_computer.js"></script>

但是当屏幕宽度小于500px时,我想要加载另一个文件:

<script type="text/javascript" src="js/mobile_version.js"></script>

我已经尝试了一切,但它无法正常工作。


也许您可以使用matchMedia.js并使用matchMedia.js加载脚本

$(function(){
    if (matchMedia('only screen and (max-width: 500px)').matches) {
        $.getScript(...);
    }
});

你不需要jQuery,它足以在DOM中动态创建<script>标签:

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');

script.type = 'text/javascript';

if (<screen-width less than 500>)
    script.src = "js/mobile_version.js";
else
    script.src = "js/jquery_computer.js";

head.appendChild(script);

您必须自己在JS中创建该标记。 像这样的东西:

var head = document.getElementsByTagName('head')[0];
var js = document.createElement("script");

js.type = "text/javascript";

if (screen.width > 500)
{
    js.src = "js/jquery_computer.js";
}
else
{
    js.src = "js/mobile_version.js";
}

head.appendChild(js);

最好的方法是使用内置的matchMedia API。

var script = document.createElement('script');
script.type='text/javascript';

if(window.matchMedia("(min-width:500px)").matches) {
  script.src = 'js/jquery.slitslider.js';      
}else{
  script.src = 'js/mobile_version.js';      
}

document.getElementsByTagName('head')[0].appendChild(script);

缺点是IE <10不支持它





html