2017-08-04 42 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