仅在桌面上加载外部JavaScript

时间:2015-07-13 20:30:34

标签: javascript jquery responsive-design

我已经经历了大量的答案,我无法为我工作。在使用JavaScript时,请耐心等待,因为我是新手。

我正在尝试仅在桌面上加载外部JavaScript文件。下面是我目前使用的代码,但它不起作用。有人可以帮助我实现这一目标。

<script>
(function() {
if( window.innerWidth > 600 ) {
    var theScript = document.createElement('script');
        theScript.type = 'text/javascript';
        theScript.src = 'www.siteminds.net/m/1.6/mind_loader.php?pid=y2w6z8B3N31&cast_id=v1532315&autoplay=1&avname=jackie&wc=1&avnum=15&band_type=av';

    var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(theScript, s);
}
})();
</script>

我将此代码放在head部分中,但脚本未运行。

该网站使用respond.js进行响应。我还添加了enquire.js以尝试使用该方法(我也无法开始工作)

2 个答案:

答案 0 :(得分:3)

可能主要问题是您必须在URL上包含协议,所以:

'www.siteminds.net/m/1.6/mind_loader.php?pid=y2w6z8B3N31&cast_id=v1532315&autoplay=1&avname=jackie&wc=1&avnum=15&band_type=av'

需要:

'http://www.siteminds.net/m/1.6/mind_loader.php?pid=y2w6z8B3N31&cast_id=v1532315&autoplay=1&avname=jackie&wc=1&avnum=15&band_type=av'

如果还没有一些脚本标记,您的代码也可能会失败。这个版本不容易受到攻击:

<script>
(function() {
if( window.innerWidth > 600 ) {
    var theScript = document.createElement('script');
    theScript.type = 'text/javascript';
    theScript.src = 'http://www.siteminds.net/m/1.6/mind_loader.php?pid=y2w6z8B3N31&cast_id=v1532315&autoplay=1&avname=jackie&wc=1&avnum=15&band_type=av';

    var head = document.getElementsByTagName('head')[0];
    head.appendChild(theScript);
}
})();
</script>

注意:innerWidth > 600的测试甚至不接近检测桌面安装的防故障方式,因为即使是横向模式的平板电脑也会通过该测试。

答案 1 :(得分:0)

这最终为我工作。

<script>
var width = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;

if ( width > 600) {
document.write('<script src="//www.siteminds.net/m/1.6/mind_loader.php?pid=y2w6z8B3N31&cast_id=v1532315&autoplay=1&avname=jackie&wc=1&avnum=15&band_type=av" async><\/script>');
}
</script>