我正在设置一个简单的浏览器检查程序,如果浏览器不受“支持”,则应在用户的浏览器上弹出警报。
我使用名为application.haml
:
detect.js
中设置了一个全局变量
:javascript
var ua = detect.parse(navigator.userAgent);
然后我在控制台中吐出来确保它正在捕获正确的数据,它是:
console.log(ua.browser.family);
并在base.coffee
中设置条件:
if ua.browser.family != 'Chrome' || 'Safari' || 'Firefox' || 'Chrome Canary'
alert('Your browser is not supported.')
现在,警报会在任何浏览器上弹出,即使它是Chrome,Safari,Firefox或Chrome Canary。
寻找第二双眼睛...为了让它正常工作,我错过了什么?
答案 0 :(得分:4)
声明'Chrome' || 'Safari' || 'Firefox' || 'Chrome Canary'
将始终评估为“' Chrome'”,因此无法正常工作。您需要测试每个字符串的完整条件:
if ua.browser.family != 'Chrome' || ua.browser.family != 'Safari' || ua.browser.family != 'Firefox' || ua.browser.family != 'Chrome Canary'
Coffescript测试数组是否包含元素的方法更短:
if ua.browser.family in ['Chrome', 'Safari', 'Firefox', 'Chrome Canary']
答案 1 :(得分:1)
if ((ua.browser.family != 'Chrome') || (ua.browser.family !='Safari')
|| (ua.browser.family !='Firefox') || (ua.browser.family !='Chrome Canary'))
alert('Your browser is not supported.')
尝试这个..
答案 2 :(得分:0)
应该阅读if ua.browser.family != 'Chrome' && ua.browser.family != 'Safari' && ua.browser.family != 'Firefox' && ua.browser.family != 'Chrome Canary'