我需要的是在window.width> = 768时附加脚本,否则,如果window.width是< 768则附加另一个脚本。
这是我的初始脚本,它实际上有效:
function appendScript(stickname){
var head = document.getElementsByTagName("head")[0]; var js = document.createElement("script");
js.type = "text/javascript"; js.src = "site/js/" + stickname + ".js";
head.appendChild(js);
}
if ($(window).width() >= 768) { appendScript("stick");}
else {appendScript("stick-mobile")}
这有效,但它当然不适用于窗口调整大小。例如,当您将浏览器窗口缩小到768px宽时,您必须点击刷新才能使脚本再次运行..更糟糕的是:例如,如果您使用的是小型平板电脑,则在切换时不会切换脚本取向。
我试过这个:
function appendScript(stickname){
var head = document.getElementsByTagName("head")[0]; var js = document.createElement("script");
js.type = "text/javascript"; js.src = "site/js/" + stickname + ".js";
head.appendChild(js);
}
$(window).resize(function() {
if ($(window).width() >= 768) { appendScript("stick");}
else {appendScript("stick-mobile")}
});
仅在最初调整浏览器大小时才有效。这当然是不可接受的。 有人可以帮忙吗?非常感谢你!
答案 0 :(得分:0)
你能告诉我这个代码是放在javascript标签中吗?
function appendScript(stickname){
var head = document.getElementsByTagName("head")[0];
var js = document.createElement("script");
js.type = "text/javascript";
js.src = "site/js/" + stickname + ".js";
head.appendChild(js);
}
(function(){
if ($(window).width() >= 768) { appendScript("stick");}
else {appendScript("stick-mobile")}
$(window).resize(function() {
if ($(window).width() >= 768) { appendScript("stick");}
else {appendScript("stick-mobile")}
});
})();
只是一个问题:在appendScript()中,你不应该删除以前的脚本中的孩子(...)吗?为此,在脚本元素上添加一个类来区分它们?
答案 1 :(得分:0)
没有人回答,但这可能对其他人有帮助,一位朋友帮我解决了这个脚本,这似乎有效(即使萤火虫表现得很奇怪)
window.onload = windowload;
window.onresize = AppendScript;
function windowload() {
AppendScript();
}
function AppendScript() {
if (window.innerWidth >= 768) {
Include('site/js/stick.js', 'on')
Include('site/js/stick-mobile.js', 'off')
}
else {
Include('site/js/stick.js', 'off')
Include('site/js/stick-mobile.js', 'on')
}
}
function Include(filename, status) {
var head = document.getElementsByTagName('head')[0];
if (status == 'on') {
script = document.createElement('script');
script.src = filename;
script.type = 'text/javascript';
head.appendChild(script)
}
else if (status == 'off') {
var scripts = head.getElementsByTagName('script');
if (scripts.length > 0) {
head.removeChild(scripts[1]);
}
}
}