如何根据屏幕分辨率加载或不加载 JS 脚本(进入 head 部分)?
How to load or not a JS script (into the head section) based on screen resolution?
在一个网站上,我在标签上有这些行
<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>
但是没用
提前致谢
<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>
您可以阅读有关异步(动态)加载脚本的内容。加载前您可以检查分辨率并加载所需的脚本。
您可以在服务器端过滤脚本列表(检查 header 移动设备)并在 header 中只包含需要的脚本。
在你的脚本中
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);
}
检查 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);
}
希望对您有所帮助。
尝试这样的事情:
<!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>
用这个脚本标签替换你的脚本标签,这将创建其他三个脚本标签,只有 window 宽度大于一定数量。
这个答案不依赖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>
在一个网站上,我在标签上有这些行
<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>
但是没用
提前致谢
<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>
您可以阅读有关异步(动态)加载脚本的内容。加载前您可以检查分辨率并加载所需的脚本。
您可以在服务器端过滤脚本列表(检查 header 移动设备)并在 header 中只包含需要的脚本。
在你的脚本中
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);
}
检查 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);
}
希望对您有所帮助。
尝试这样的事情:
<!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>
用这个脚本标签替换你的脚本标签,这将创建其他三个脚本标签,只有 window 宽度大于一定数量。
这个答案不依赖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>