2015-10-13 66 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

相關問題