如何根据匹配数组中的值显示某个图像?

时间:2011-11-03 09:56:43

标签: javascript arrays

我正在尝试开发一些能够检测浏览器语言的JavaScript(因为它使用navigator.Browserlanguagewindow.navigator.language而无关紧要)并且基于此将向用户显示某个图像。例如,如果浏览器语言是“en-GB”,它将显示某个图像,如果它是“fr”,那么它将显示不同的图像,依此类推。

目前,我已经通过数组循环检测浏览器语言并显示“支持的语言”。它工作正常,因为我在FF,IE,Chrome,Safari和Opera中进行了测试,但现在我需要知道是否有办法根据浏览器语言显示图像。有没有办法让我这样做?即将2个数组链接在一起(这是否可能?)或者我可以使用图像数组并使相应的图像与文本在数组中的位置相同吗?我将如何实现这一目标?

这是我到目前为止的代码:

var IAB_Array = new Array("en","en-GB","en-US","fr","de","en-gb","en-us"); 
var lang = IAB_lang_detect(); 
if(lang) document.write('Language supported');

function IAB_lang_detect() {
    if ((navigator.browserLanguage) || (window.navigator.language)) {
    for (var i=0;i<IAB_Array.length;i++) {
        if((IAB_Array[i]==navigator.browserLanguage) || (IAB_Array[i]==window.navigator.language)) {
            return true;
        }
    }
}
return false;
}

非常感谢任何帮助!

由于

1 个答案:

答案 0 :(得分:0)

不是在数组中使用字符串,而是插入一个对象:

IAB_Array = [
  {lang: "en", image: "english.png"},
  {lang: "en-GB", image: "en_gb.png"},
  ...
];

然后,您可以使用IAB_Array.langIAB_Array["lang"]找到该对象的属性。