скажите html doc не загружать js, если мобильное устройство
я нахально ищу строку или две кода на лету здесь:
может ли кто-то быть достаточно любезным, чтобы предоставить код для размещения в головном разделе html doc, который говорит, что если мобильный, то не загружайте JS?
Это используется в сочетании со следующим медиа-запросом CSS:
<link rel="stylesheet" type="text/css" media="only screen and (max-device-width: 480px)" href="m/styles_mobile.css" />
поэтому я ищу фрагмент кода, основанный на том же правиле: media= " только экран и (max-device-width: 480px)"
был бы очень благодарен
5 ответов
дано: "если мобильный, то не загружать JS", и предполагая, что "мобильный" определяется экранами шириной 480 пикселей или меньше, тогда должно работать что-то вроде следующего:
<script>
if (screen && screen.width > 480) {
document.write('<script type="text/javascript" src="foo.js"><\/script>');
}
</script>
это добавит элемент сценария, только если экран будет больше 480 пикселей в ширину.
правило CSS в OP:
<... media="only screen and (max-device-width: 480px)" ...>
который будет нацелен на экраны 480 пикселей или меньше, что противоречит первому утверждению. Таким образом, изменение >
к <=
если скрипт должен работать на маленьких экранах, а не на больших.
Я не уверен, как предыдущие ответы будут идти с дисплеями retina. Я бы сделал что-то вроде:
if( /Android|webOS|iPhone|iPod|iPad|BlackBerry/i.test(navigator.userAgent))
document.write('<script type="text/javascript" src="foo.js"><\/script>');
фрагмент здесь
Вы можете сделать это так.
- Проверьте ширину и высоту экрана, чтобы увидеть, если это мобильное устройство.
- загрузка скриптов с использованием 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
.
теперь можно использовать 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
лучший способ сделать это было бы добавить его вокруг всего фактического мобильного скрипта внутри "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>');
}