我厚脸皮求一两行对这里的苍蝇代码:
可能有人好心提供的代码在HTML文档的头部说,如果移动则不会加载JS的地方?
这与以下CSS媒体查询结合使用:
<link rel="stylesheet" type="text/css" media="only screen and (max-device-width: 480px)" href="m/styles_mobile.css" />
于是我找了一段代码,是基于相同的规则:媒体=“只有屏幕和(最大设备宽度:480像素)”
将不胜感激
鉴于:“如果移动则不会加载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个像素或更低,这是违背的第一条语句屏幕。 因此更改>
到<=
如果脚本应该在小屏幕上运行,而不是较大的运行。
我不知道以前的答案如何与视网膜显示器去。 我会做这样的事情:
if( /Android|webOS|iPhone|iPod|iPad|BlackBerry/i.test(navigator.userAgent))
document.write('<script type="text/javascript" src="foo.js"><\/script>');
从片断这里
现在,可以使用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
你可以不喜欢这样。
- 测试屏幕的宽度和高度,以看看它是否是一个移动设备。
- 加载中使用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
。
做到这一点,最好的办法是添加它整个周围的实际移动脚本“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>');
}