我没有看到我的错误在哪里,如果有任何
<!DOCTYPE html> <html> <head>
<script type="text/javascript">
//http://stackoverflow.com/questions/10251149/using-javascript-to-detect-google-chrome-to-switch-css
//provera brosera
function check_chrome_ua() {
var ua = navigator.userAgent.toLowerCase();
var is_chrome = /chrome/.test(ua);
alert("func check_chrome_ua() " + is_chrome);
return is_chrome;
}
//promena nadpisa
function check() {
//alert("check1");
var check = check_chrome_ua();
alert("var check " + check + "; func check_chrome_ua() " + check_chrome_ua());
if (check == "false") {
alert("change text");
document.getElementById("opomena").style.color = "red";
document.getElementById("opomena").innerHTML = 'Warning you are not using Google Chrome';
}
}
</script>
</head>
<body onmousemove="check()">
<div id="opomena">Thank you for using Google Chrome.</div>
</body>
</html>
谷歌Chrome弹出窗口弹出窗口说的是真的,在Firefox上说错误 弹出“更改文本”不会在Firefox中显示,因此var check为false。
提前感谢您的建议
答案 0 :(得分:4)
更改
if (check == "false") {
到
if (!check) {
或
if (check == false) {
如果你真的想检查布尔值false
。
您在test
调用的正则表达式/chrome/.test(ua)
方法返回一个布尔值,但check == "false"
正在将该布尔值与字符串进行比较。两者不相等。
在JavaScript中,==
在将字符串与对象进行比较时是permissive,但不像Perl的eq
运算符那样宽松。
0 == false
false == false
"false" == [false]
false != "false"
0 != "false"
尝试使用!==
和===
这是一个很好的习惯,它们是定义良好的运算符来比较原始值。
答案 1 :(得分:1)
你必须检查布尔值false,而不是“false”(它是一个字符串)。
只有if (!check)
就足够了(或更详细的版本if (check == false)
)。