У меня есть следующий JSON, который формирует карту сайта внизу HTML-страницы:
var loadPages = { 'pageData' : [
{
'loadInTo' : '#aboutUs',
'url' : 'http://www.website.co.uk/aboutUs.html',
'urlSection' : '#aboutUs'
},
{
'loadInTo' : '#whatWeDo',
'url' : 'http://www.website.co.uk/whatWeDo.html',
'urlSection' : '#whatWeDo'
},
{
'loadInTo' : '#ourValues',
'url' : 'http://www.website.co.uk/ourValues.html',
'urlSection' : '#ourValues'
},
{
'loadInTo' : '#ourExpertise',
'url' : 'http://www.website.co.uk/ourExpertise.html',
'urlSection' : '#ourExpertise'
}
] }
Я использую это для загрузки / ajax частей других страниц, таких как:
HTML
<div id="aboutUs" class="section"></div>
<div id="whatWeDo" class="section"></div>
<div id="ourValues" class="section"></div>
<div id="ourExpertise" class="section"></div>
JS
for(i=0; i < loadPages.pageData.length ; i++){
var current = loadPages.pageData[i];
$(current.urlSection).load(current.url);
}
Это прекрасно работает.Однако я хотел бы хранить JSON во внешнем файле .JS, а не на странице.
Я могу загрузить файл JSON, но не могу получить его в том же формате, что и выше, вот как я подхожуэто:
window.siteMap = '';
$.ajax({
type: "GET",
url: 'js/siteMap.js',
async: false,
beforeSend: function(x) {
if(x && x.overrideMimeType) {
x.overrideMimeType("application/j-son;charset=UTF-8");
}
},
dataType: 'json',
success: function(data){
siteMap = eval('(' + data + ')');
}
});
В консоли я вижу, что файл загружен, но я могу ссылаться на данные таким же образом.Может кто-нибудь помочь показать мне, где я иду не так?Большое спасибо заранее.