2013-03-15 23 views
0

我寫了這個代碼依賴於瀏覽器語言,以取得網頁的語言文件:

$.ajax({ 
     'async': false, 
     'global': false, 
     'url': "./languages/"+navigator.language.substring(0,2)+".json", 
     'dataType': "json", 
     'success': function (testo) { 
     $.each(testo, function(originalstring, newstring){ 
     $('body').html($('body').html().replace(originalstring, newstring)); 
     }); 
     } 
    }); 

是否有管理「找不到文件」的錯誤,因此負載的簡單方法默認的語言json文件(即英文)? AJAX

$.ajax({ 
    async: false, 
    global: false, 
    url: "./languages/"+navigator.language+".json", 
    dataType: "json", 
    success: function (testo) { 
    $.each(testo, function(originalstring, newstring){ 
    $('body').html($('body').html().replace(originalstring, newstring)); 
    } 
    }, 
error:function(obj, textStatus, errorThrown){ 
    //load default lang file here 
} 

})的

回答

1

使用錯誤回調;

+0

你的意思是我應該寫一個嵌套的$ .ajax,不是嗎?這對我來說顯得非常難看,我希望我不明白! – andreaconsole 2013-03-15 22:57:50

1
 $.ajax({ 
       'async': false, 
       'global': false, 
       'url': "./languages/"+navigator.language+".json", 
       'dataType': "json", 
       complete: function(e, xhr, settings){ 
        if(e.status === 404){ 

        call the same function by passing the language as english 

        } 
       }, 
       'success': function (testo) { 
       $.each(testo, function(originalstring, newstring){ 
       $('body').html($('body').html().replace(originalstring, newstring)); 
       }); 
       } 
      });