2015-10-13 86 views
2

我使用jquery.flexslider插件,它工作正常。当我第一次加载网站时addScript函数不工作

但对于屏幕< 600px我不想加载插件。我尝试了几个脚本,并以下面的结尾,我认为最好。

我把它插在标题中的CSS和JS标签后面,但不幸的是它只能在第二次加载时使用,而不是第一次使用F5(在IE 11和Chrome 45.0.2454.101中测试过)。

function addScript (src) { 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = 'www.mywebadre.ss/js/jquery.flexslider-min.js'; 
    document.head.appendChild(script); 
} 

if (screen.width > 600) { 
    addScript("www.mywebadre.ss/js/jquery.flexslider-min.js"); 
} 

http://tinyurl.com/qjkeesg

+0

所以你只关心检查页面的初始负载上的屏幕宽度? – ryuu9187

+1

我想你试图隐藏较小屏幕的幻灯片,如果是这样的话,我会建议忘记你想要做什么,并使用CSS媒体查询来显示/隐藏相关元素。 – Archer

+0

我想知道为什么你的函数addScript在参数'src'中有一个参数'src'如果你不使用它 –

回答

0

由于跨浏览器的差异,你不能总是依靠document.head已经在那里。使用document.getElementsById来获取对元素的引用。

function addScript(src) { 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = src; 
    document.getElementsByTagName("head")[0].appendChild(script); 
} 
if (screen.width > 600) { 
    addScript('http://www.mywebadre.ss/js/jquery.flexslider-min.js'); 
} 

另外,我注意到你没有在URL的前面使用http或https。

经过测试,只要使用有效的URL,它就可以在IE和Chrome中使用。作为最后一步,通过将其粘贴到浏览器中,确保您的URL有效。

+0

谢谢 - 我试过你的脚本但是和以前一样 - flexslider-min只有当我去URL并点击返回加载,F5没有任何反应。 – mona

+0

你正在收到什么错误? –

+0

没有错误 - jquery.flexslider-min.js只在我第二次加载站点时加载 – mona

0

感谢您的帮助,终于让我找到一个解决方案通过自己:

有需要在连接
与Screen.width增加外部脚本没有单独的脚本

只需打开jquery.flexslider- min.js并添加到开始最初的脚本如下的

var mq = window.matchMedia("(min-width: 500px)"); 
if (mq.matches) { here is the original code, just let it how it is } 

不要忘记}在原始脚本结束时再次关闭。希望我
可以帮助别人用这个简单的把戏
mona

相关问题