告诉HTML文档不加载,如果移动设备的js(tell html doc not to load js

2019-06-24 07:02发布

我厚脸皮求一两行对这里的苍蝇代码:

可能有人好心提供的代码在HTML文档的头部说,如果移动则不会加载JS的地方?

这与以下CSS媒体查询结合使用:

<link rel="stylesheet" type="text/css" media="only screen and (max-device-width: 480px)" href="m/styles_mobile.css" />

于是我找了一段代码,是基于相同的规则:媒体=“只有屏幕和(最大设备宽度:480像素)”

将不胜感激

Answer 1:

鉴于:“如果移动则不会加载JS”,并且假定“移动”是通过屏幕,分辨率为480像素或更小的宽度定义,则类似下面应该工作:

<script>
if (screen && screen.width > 480) {
  document.write('<script type="text/javascript" src="foo.js"><\/script>');
}
</script>

这将添加脚本元素只有在屏幕大于480个像素宽。

在OP的CSS规则是:

<... media="only screen and (max-device-width: 480px)" ...>

这也将瞄准480个像素或更低,这是违背的第一条语句屏幕。 因此更改><=如果脚本应该在小屏幕上运行,而不是较大的运行。



Answer 2:

我不知道以前的答案如何与视网膜显示器去。 我会做这样的事情:

if( /Android|webOS|iPhone|iPod|iPad|BlackBerry/i.test(navigator.userAgent))
 document.write('<script type="text/javascript" src="foo.js"><\/script>');

从片断这里



Answer 3:

现在,可以使用window.matchMedia

if (window.matchMedia("(min-width: 480px)").matches) {
  document.write('<script type="text/javascript" src="foo.js"><\/script>');
}

https://developer.mozilla.org/docs/Web/API/Window/matchMedia http://caniuse.com/#feat=matchmedia



Answer 4:

你可以不喜欢这样。

  1. 测试屏幕的宽度和高度,以看看它是否是一个移动设备。
  2. 加载中使用JavaScript脚本。

你可以做的是这样的:

var scripts = ["foo.js",       //Put all your scripts here.
               "bar.js"];

if(screen.width <= 480){
    for(var i=0;i<scripts.length;i++){
              //-with jQuery (one line!)-
        $("head").append('<script type="text/javascript" src="'+scripts[i]+'"><\/script>');
                 //-or jQuery free-
        var scriptEle = document.createElement("script");
        scriptEle.setAttribute("type","text/javascript");
        scriptEle.setAttribute("src",scripts[i]);
        document.getElementsByTagName("head")[0].appendElement(scriptEle);
    }
}

注意它是screen.width <= 480



Answer 5:

做到这一点,最好的办法是添加它整个周围的实际移动脚本“foo.js”文件中。 该DOM将有麻烦加载标签,如果你突然追加它。

if (screen && screen.width > 480) {
 // Whole your script here
}

代替:

if (screen && screen.width > 480) {
  document.write('<script type="text/javascript" src="foo.js"><\/script>');
}


文章来源: tell html doc not to load js if mobile device