kw.json という外部ファイルにこの json データがあります。
{
"categories" : [{
"producer" : "Apple",
"items" : [
{"name": "iPhone 4G"},
{"name": "iPhone 4GS"},
{"name": "iPhone 5"}
]
},{
"producer" : "Samsung",
"items" : [
{"name": "Galaxy S3"},
{"name": "Galaxy S2"}
]
},{
"producer" : "Nokia",
"items" : [
{"name": "Lumia"},
{"name": "3210"},
{"name": "3310"}
]
}]
}
そして、このスクリプトでファイルをロードし、データを処理します。
var menulist;
$.getJSON(rootDomain + "kunden/*kwmobile*/js/kw.json", function(json) {
menulist = json;
var i,c = '<div class="fn_menu_title pointer"><span>bitte Hersteller auswählen</span></div><ul class="fn_menu">', opt = $('<li/>');
var menu = menulist.categories;
for (i=0; i < menu.length; i++){
c += '<li><span class="noar" id="'+[i]+'">' + menu[i].producer + '</span></li>';
}
$('#cat').html(c+'</ul>');
$(".noar").live('click',function(){
var indx = $(this).attr("id");
if (indx < 0) {
$('#items').css('display','none');
return;
}
var item = '<div class="fn_menu_title pointer"><span>bitte Modell auswählen</span></div><ul class="fn_menu">';
for (i=0; i < menu[indx].items.length; i++){
item += '<li><span class="pointer search_link" searchkey="'+ menu[indx].producer +' '+ menu[indx].items[i].name +'">' + menu[indx].items[i].name + '</span></li>';
}
$('#items').html(item+'</ul>').fadeIn();
$("#items").menuFlip();
});
});
問題は、コンソールにクロスブラウザー エラーが表示されることですが、同じオリジンで .json をアップロードする可能性がないことです。
jsonp が問題を解決する可能性があることは知っていますが、私はそれを使用したことがないので、助けていただければ幸いです。
(bda 英語で申し訳ありません。私はドイツ出身です)
ありがとうございました!