2011-11-14 274 views
0

我一直在負責編寫一些代碼,即放置在廣告的右上角的小圖標無論大小。根據用戶的語言(在這種情況下,我使用的瀏覽器語言),它會改變圖標(根據地方的服務器上的圖像庫),並也將隨之改變的點擊的網址爲圖像。我知道,我能得到這個通過讀取HTTP頭中的操作系統語言的工作,但我不能做到這一點,它需要做服務器端。腳本是由我編寫的,但HTML由其他人繼承 - 我也有編輯兩者的能力。爲什麼此代碼在IE和Safari中不起作用?

目前的代碼在Firefox,Chrome和Opera,但是當我把默認的瀏覽器語言的另一個歐洲語言(法語說),在IE和Safari瀏覽器將無法工作.. !!這讓我很生氣,所以如果你能幫助我,我會很感激。在一些建議,這裏有一個活生生的例子:

現場演示:http://jsfiddle.net/Juu7t/

編輯:右鍵所以用代碼玩弄後,我仍然不明白爲什麼這是行不通的。什麼是本質上發生的事情是默認的圖像將負載(IE和Safari瀏覽器),但基於瀏覽器的語言也不會掉的圖像。 JavaScript控制檯不顯示任何錯誤,Firebug不幫助我!

EDIT2:對,所以我寫了這個小功能來測試是否Internet Explorer的實際讀取正確的語言。 (我使用IE9):

function checkIE() { 
if ((navigator.browserLanguage) || (window.navigator.language)) { 
var testbrowser = navigator.browserLanguage || window.navigator.language; 
alert(testbrowser); 
} 
} 
checkIE(); 

即使當我改變在IE爲「法國」,即「FR」仍然會返回「EN-US」的語言!我做錯了什麼或者我從導航器對象讀取錯誤的值?

+1

考慮制定[現場演示](HTTP://的jsfiddle。淨).. –

+0

好酷 - 讓我這樣做。 – zik

+0

更新了你的jsfiddle:http://jsfiddle.net/Juu7t/2/ – OptimusCrime

回答

0

我也在尋找解決辦法,我發現在後的溶液,作爲

$.ajax({ 
    url: "http://ajaxhttpheaders.appspot.com", 
    dataType: 'jsonp', 
    success: function(headers) { 
    language = headers['Accept-Language']; 
    nowDoSomethingWithIt(language); 
    } 
}); 

你可以看到完整的詳細信息here

相關問題