2017-08-04 43 views
0

我有這樣的:指定外部JavaScript數據陣列

<!-- Javascript --> 
<script> 
$(function() { 
    var availableTutorials = [ 

     "MacKenzie, Randy", 
     "Paciorkowski, Lev", 
     "Johnston, Daniel", 
     "Lionti, Michael", 
    ]; 
    $(".automplete-2").autocomplete({ 
     source: availableTutorials, 
     autoFocus: true 
    }); 
}); 
</script> 

但我想只是指定一個外部JavaScript數據陣列的名稱;像src =「players.js」;

如何在不破壞javascipt的情況下做到這一點?

+0

代替'source:availableTutorials',只需提供像這樣的URL:url' –

+0

對我來說'external javascript data array;像src =「players.js」;'絕對不清 – smnbbrv

回答

0

只要把它們添加到一個單獨的外部JavaScript文件,包括文件中的當前文件之前(如果你想使用這些名稱)

例如,在你的players.js地方文件在服務器上您有這代碼

window.players = [ 
    "John", "Mike" 
] 

然後,您將播放器列表包含在您的標題中以預先加載它們以供快速使用。

<script src="players.js"></script> 

然後,別的地方

<script> 
$(".automplete-2").autocomplete({ 
     source: window.players, 
     autoFocus: true 
    }); 
}); 
</script> 

正如在評論中指出,可以通過添加屬性窗口對象污染全局命名空間。它很好,但你應該嘗試將所有站點特定的屬性添加到一個不太可能與某些第三方庫重疊的自定義子屬性中。

例如:

SiteData.players = []; // your preloaded player list 
SiteData.config = { 
    apiUrl: 'some url', 
    env: 'test' 
} 
SiteData.userPreferences = { 
    playersPerPage: 10, 
    colorScheme: 'dark' 
    ... 
} 

等。 這樣你在全局命名空間只有1個屬性。

+1

請注意,這意味着您正在冒着污染全局命名空間的風險。 – Terry