Javascript 附加<;脚本src="&引用&燃气轮机</脚本>;根据屏幕宽度调整头部

Javascript 附加<;脚本src="&引用&燃气轮机</脚本>;根据屏幕宽度调整头部,javascript,jquery,append,Javascript,Jquery,Append,我需要像这样简单的东西: <script type="text/javascript"> <!-- if (screen.width <= 699) { document.location = "mobile.html"; } //--> </script> function appendScript(pathToScript) { var head = document.getElementsByTagName("head")[0];

我需要像这样简单的东西:

<script type="text/javascript">
<!--

if (screen.width <= 699) {
document.location = "mobile.html";
}
//-->
</script>
function appendScript(pathToScript) {
    var head = document.getElementsByTagName("head")[0];
    var js = document.createElement("script");
    js.type = "text/javascript";
    js.src = pathToScript;
    head.appendChild(js);
}
appendScript("path/to/file.js");
function removeScript(pathToScript) {
    var head = document.getElementsByTagName("head")[0];
    var scripts = head.getElementsByTagName("script");
    for (var i = 0; i < scripts.length; i++) {
        var js = scripts[i];
        if (js.src == pathToScript) {
            head.removeChild(js);
            break;
        }
    }
}
removeScript("path/to/file.js");

但是我需要在
中附加
而不是重定向

这可能吗?

您可以选择一个并设置其src属性,然后将其设置为文档的

var script = document.createElement('script');
script.src = 'js.js';
document.head.appendChild(script)
如果希望支持IE<9,则使用
document.head
而不是
document.getElementsByTagName('head')[0]
在操作中查看它:


您可以定义一个函数,如下所示:

<script type="text/javascript">
<!--

if (screen.width <= 699) {
document.location = "mobile.html";
}
//-->
</script>
function appendScript(pathToScript) {
    var head = document.getElementsByTagName("head")[0];
    var js = document.createElement("script");
    js.type = "text/javascript";
    js.src = pathToScript;
    head.appendChild(js);
}
appendScript("path/to/file.js");
function removeScript(pathToScript) {
    var head = document.getElementsByTagName("head")[0];
    var scripts = head.getElementsByTagName("script");
    for (var i = 0; i < scripts.length; i++) {
        var js = scripts[i];
        if (js.src == pathToScript) {
            head.removeChild(js);
            break;
        }
    }
}
removeScript("path/to/file.js");
然后使用适当的参数调用它(例如,根据屏幕大小),如下所示:

<script type="text/javascript">
<!--

if (screen.width <= 699) {
document.location = "mobile.html";
}
//-->
</script>
function appendScript(pathToScript) {
    var head = document.getElementsByTagName("head")[0];
    var js = document.createElement("script");
    js.type = "text/javascript";
    js.src = pathToScript;
    head.appendChild(js);
}
appendScript("path/to/file.js");
function removeScript(pathToScript) {
    var head = document.getElementsByTagName("head")[0];
    var scripts = head.getElementsByTagName("script");
    for (var i = 0; i < scripts.length; i++) {
        var js = scripts[i];
        if (js.src == pathToScript) {
            head.removeChild(js);
            break;
        }
    }
}
removeScript("path/to/file.js");

如果还需要从
头中删除脚本(例如,基于其“src”属性),可以定义如下函数:

<script type="text/javascript">
<!--

if (screen.width <= 699) {
document.location = "mobile.html";
}
//-->
</script>
function appendScript(pathToScript) {
    var head = document.getElementsByTagName("head")[0];
    var js = document.createElement("script");
    js.type = "text/javascript";
    js.src = pathToScript;
    head.appendChild(js);
}
appendScript("path/to/file.js");
function removeScript(pathToScript) {
    var head = document.getElementsByTagName("head")[0];
    var scripts = head.getElementsByTagName("script");
    for (var i = 0; i < scripts.length; i++) {
        var js = scripts[i];
        if (js.src == pathToScript) {
            head.removeChild(js);
            break;
        }
    }
}
removeScript("path/to/file.js");

另外,请注意,使用
screen.width
返回用户屏幕的大小(而不是浏览器窗口的宽度)

如果需要获取窗口大小,可以使用
$(window.width()
(使用jQuery)。
如果您想要一个“无jQuery”的解决方案,请查看以获得跨浏览器的替代方案。

使用
yepnope
可以执行以下操作

yepnope([{
    test: 768 >= screen.width // devices 768 and up
  , yep: [ "site/js/jquery.stickyPanel.min.js" ]
  , complete: function () { alert('complete'); }
}]);

而且它会自动附加文件

Yepnope.js很好,如果您只需要在文件之间进行选择,它可以独立使用。我能提供一些帮助吗?我很想让yepnope脚本生效。这是我的代码,但它没有附加任何内容。我做错了什么?非常感谢。yepnope([{test:768>=screen.width,yep:[“site/js/jquery.stickyPanel.min.js”]}]);感谢您的帮助,ahmad,但是脚本似乎只与“”或“>=”一起工作,而且无论如何,我得到了附加。。但我需要的是,移除警报并用启动stickypanel的代码替换它,它会工作,实际上另一个.js中的initiaziles stickypanel是什么-这是强制性的吗?这不仅仅是因为它不起作用,它可能不起作用,因为没有附加任何内容。很抱歉打扰你,但如果你能帮忙,那就太好了:)我也试过这个。。但它不起作用。。这是我的脚本函数appendScript(pathToscript){var head=document.getElementsByTagName(“head”)[0];var js=document.createElement(“script”);js.type=“text/javascript”;js.src=pathToscript;head.appendChild(js);}if(screen.width>=768){appendScript(“site/js/jquery.stickyPanel.min.js”);}@omegaiori:可能是因为你似乎把你的参数命名为“pathToscript”(小写字母),但试着用“js.src=pathToscript”(大写字母)。(这是我的答案中的一个输入错误-我会纠正它-很抱歉。)如果这不能解决问题,请尝试使用开发人员控制台查看问题。确定它正常工作,但忽略了“If(screen.width>=768)”,无论如何都会追加脚本。控制台什么也没说(“CSS用法:初始化扩展”)尝试添加
alert(screen.width)就在您的
if
语句之前。它报告了什么?它说的是1366px,即使当浏览器拉伸到1366以下。。我想这就是为什么它总是附加它。我是否应该将其更改为window.size或其他格式?这将正确地附加它,但无论如何(即使在768px宽度下)。这是我的脚本:if(screen.width>=768){var script=document.createElement('script');script.src='site/js/jquery.stickyPanel.min.js';document.head.appendChild(script)}