Я написал немного кода в JavaScript, который использует объекты window.navigator.language
и navigator.browserLanguage
для поиска по массиву, который содержит эти возможные значения.Функция JavaScript, не выполняющая поиск по массиву
То, что я пытаюсь достичь, - проверить массив, чтобы увидеть, соответствует ли какое-либо из значений внутри него языку браузера. Я знаю, что вы можете использовать PHP и проверять HTTP-заголовок, но мне нужно, чтобы эта проверка выполнялась на стороне клиента. Во всяком случае, я написал код, который ниже, но по какой-то причине он, похоже, не возвращает значения, которые я хочу. Я написал эту функцию на том основании, что каждый раз, когда язык браузера соответствует значению в массиве, он возвращает true, иначе он вернет false. Однако каждый раз, когда я запускаю функцию, он просто возвращает true! Что я делаю не так? Код ниже.
JavaScript:
var langArray = new Array("en","en-GB","en-US","fr","de","en-gb","en-us");
function checkforIE() {
if (navigator.browserLanguage) { //if the navigator.browserLanguage is supported (IE only)
for(var i=0;i<langArray.length;i++) {
if(this[i] = navigator.browserLanguage) {
return true;
}
else {
return false;
}
}
}
}
function checkforFirefox() {
if (window.navigator.language) { //if the window.navigator.language is supported
for (var i=0;i<langArray.length;i++) {
if(window.navigator.language==this[i]) {
return true;
}
else {
return false;
}
}
}
}
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="test-browser.js"></script>
<title>Test Browser support</title>
</head>
<body>
<h2>Test browser support</h2>
<a href="#" onclick="checkforIE(); checkforFirefox();">Click here</a>
</body>
</html>
Спасибо заранее.
им не уверен, почему он всегда возвращает истину, но если im mistaken эти функции будут проверять только первый элемент и затем возвращаться. Остальные элементы в массиве не будут проверены. –