簡體   English   中英

為什么此代碼在IE和Safari中不起作用?

[英]Why does this code not work in IE & Safari?

我的任務是編寫一些代碼,無論尺寸大小,該代碼都會在廣告的右上角放置一個小圖標。 根據用戶的語言(在這種情況下,我使用的是瀏覽器語言),它將更改圖標(基於某處服務器上的圖像庫),並隨后更改該圖像的點擊URL。 我知道我可以通過使用HTTP標頭讀取OS語言來使其工作,但是我無法做到這一點,它需要在服務器端完成。 腳本是我寫的,但HTML是別人繼承的-我也可以同時編輯兩者。

目前,該代碼可在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”! 我做錯了什么還是從導航器對象中讀取了錯誤的值?

我也在尋找解決方案,我在帖子中找到了解決方案

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

您可以在此處查看完整的詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM