2015-12-07 28 views
4

我有兩個廣告腳本,一個用於桌面,一個用於移動。目前,某個尺寸的設置爲display: none等。我期望阻止當前未顯示的腳本運行,因爲腳本傾向於資源密集型,我試圖加快頁面加載時間。有沒有什麼辦法可以讓腳本以一定的寬度執行?防止腳本依賴於設備大小運行

我在想:

if ($(window).width >= 768px) { 
    <script> Do stuff </script> 
} else { 
    <script> Do stuff </script> 
} 

但是我已經受夠了這種沒有運氣(我不知道如何在腳本中的腳本將工作)。還有另外一種方法可以解決這個問題嗎?

+0

爲什麼你需要腳本標記?只需使用if($(窗口).WIDTH> = 768px){ 做的東西 }其他{ 做的東西 } –

+0

這是從外部來源的廣告腳本,我想我可以從中提取信息,但我d寧可將其保留爲腳本標記 –

+0

然後您可以動態添加腳本標記:http://stackoverflow.com/questions/13121948/dynamically-add-script-tag-with-src-that-may-include-document-寫 –

回答

4

而不是使腳本在扁平執行,考慮拆分起來在不同的文件和負載那些在扁平的。這樣你只加載你實際需要的腳本。

var size, 
    script;  

if($(window).width() > 768) { 
    size = 'large'; 
} else { 
    size = 'small'; 
} 

script = $('<script />').attr('src', 'http://example.com/script-' + size + '.js'); 

$('head').append(script); 
+0

這就是我以後,謝謝一堆 –

+0

一個方面說明,我有這個地方,但我收到一個警告「無法執行'寫''文檔':這是不可能寫入到來自異步加載的外部腳本的文檔,除非它明確打開。「你碰巧知道我該如何解決這個問題? –

+0

那麼你可能不應該使用'document.write'。由於你正在使用jquery,所以嘗試使用'.html()'和'.text()'將文本/ html附加到文檔中。 –