我正在开发一个函数,我想在其中检查当前正在使用的用户代理。
下面的代码只是一个原型,它返回它首先读取的任何值-在本例中为IE。
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());
}我不知道哪里出了问题。也许你们可以看看,告诉我我在哪里转错了弯。
发布于 2011-12-28 17:36:40
如果未找到匹配项,则indexOf返回-1。如果找到匹配项,则返回值为找到的子字符串的字符索引。
要检查子字符串是否存在,应使用:
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发布于 2011-12-28 17:38:27
return (browser.indexOf('IE') > -1)
? "Internet Explorer"
: (browser.indexOf('Mozilla') > -1)
? "FireFox"
: "UserAgent not recognized!";发布于 2011-12-28 17:49:02
您没有检查索引值...
如果您发现您的线路应该是indexOf('IE') >= 0...
https://stackoverflow.com/questions/8654086
复制相似问题