首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript函数返回的值不正确

JavaScript函数返回的值不正确
EN

Stack Overflow用户
提问于 2011-12-28 17:31:46
回答 3查看 124关注 0票数 1

我正在开发一个函数,我想在其中检查当前正在使用的用户代理。

下面的代码只是一个原型,它返回它首先读取的任何值-在本例中为IE

代码语言:javascript
复制
detectDevice = function () {
    var userAgent = {
        detect: function () {
            return navigator.userAgent;
        },
        detectBrowser: function () {
            var browser = userAgent.detect();
            var currentBrowser;
            return currentBrowser = browser.indexOf('IE') ? "Internet Explore" : browser.indexOf('Mozilla') ? "FireFox" : "UserAgent not recognized!";
        },
        version: function (identifier) {
        }
    };

    alert(userAgent.detectBrowser());
}

我不知道哪里出了问题。也许你们可以看看,告诉我我在哪里转错了弯。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-28 17:36:40

如果未找到匹配项,则indexOf返回-1。如果找到匹配项,则返回值为找到的子字符串的字符索引。

要检查子字符串是否存在,应使用:

代码语言:javascript
复制
browser.indexOf('IE') != -1
// If a match is found, a non-negative index is returned. So, this also works:
//..... indexOf('IE') > -1
// .... indexOf('IE') >= 0
票数 6
EN

Stack Overflow用户

发布于 2011-12-28 17:38:27

代码语言:javascript
复制
return (browser.indexOf('IE') > -1)
           ? "Internet Explorer" 
           : (browser.indexOf('Mozilla') > -1)
                ? "FireFox" 
                : "UserAgent not recognized!";
票数 2
EN

Stack Overflow用户

发布于 2011-12-28 17:49:02

您没有检查索引值...

如果您发现您的线路应该是indexOf('IE') >= 0...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8654086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档