2011-11-14 275 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

相关问题