Почему этот код не работает в IE & Safari? - PullRequest
0 голосов
/ 14 ноября 2011

Мне было поручено написать некоторый код, который помещает маленькую иконку в верхнем правом углу объявления независимо от размера. В зависимости от языка пользователя (в данном случае я использую язык браузера), он изменит значок (в зависимости от банка изображений на сервере) и впоследствии изменит URL клика по этому изображению. Я знаю, что могу заставить это работать, читая язык ОС с заголовком HTTP, но я не могу этого сделать, и это нужно делать на стороне сервера. Сценарий был написан мной, но 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» !! я что-то не так делаю или я читаю неверное значение из объекта навигатора?!

1 Ответ

0 голосов
/ 30 января 2014

Я также ищу решение, и я нашел решение в сообщении как

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

Вы можете увидеть полную информацию здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...