gpt4 book ai didi

JavaScript 函数不搜索数组

转载 作者:行者123 更新时间:2023-11-30 18:36:58 25 4
gpt4 key购买 nike

我用 JavaScript 编写了一些代码,使用 window.navigator.languagenavigator.browserLanguage 对象来搜索包含这些可能的数组值(value)观。

我想要实现的是检查一个数组,看看其中是否有任何值与浏览器语言匹配。我知道您可以使用 PHP 并检查 HTTP header ,但我需要在客户端执行此检查。无论如何,我已经编写了下面的代码,但由于某种原因它似乎没有返回我想要的值。我写这个函数的基础是每次浏览器语言匹配数组中的一个值时它会返回 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>

提前致谢。

最佳答案

this[i] 应该是 langArray[i]。您期望 this 引用 langArray,但这是不正确的。 this 指的是 window

另外,您没有对返回值做任何事情。要组合您的功能行为,请使用:

var lang = checkforIE() || checkforFirefox(); //If IE, use IE, otherwise, use FF
if(lang) alert('Language supported');

关于JavaScript 函数不搜索数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7965912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com