【问题标题】:javascript if failsjavascript 如果失败
【发布时间】:2012-08-29 16:00:50
【问题描述】:

我看不到我的错误在哪里,如果有的话

<!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>

Google Chrome 上的弹出窗口显示为真,Firefox 上的显示为假 在 Firefox 中不显示弹出“更改文本”,但 var 检查为假。

提前感谢您的建议

【问题讨论】:

  • 专业提示,“false”是一个字符串;)
  • 真 == '假' -> 假,假 == '假' -> 假,哦,伙计

标签: javascript html dom if-statement


【解决方案1】:

您必须检查布尔值是否为 false,而不是“false”(它是一个字符串)。

只有if (!check) 就足够了(或更详细的版本if (check == false))。

【讨论】:

    【解决方案2】:

    改变

    if (check == "false") {
    

    if (!check) {
    

    if (check == false) {
    

    如果你真的想检查布尔值,false

    您在/chrome/.test(ua) 调用的正则表达式test 方法返回一个布尔值,但check == "false" 将该布尔值与字符串进行比较。两者不相等。

    在 JavaScript 中,== 在比较字符串与对象时是 permissive,但不如 Perl 的 eq 运算符那么宽松。

    • 0 == false
    • false == false
    • "false" == [false]
    • false != "false"
    • 0 != "false"

    尝试使用!===== 是一个很好的习惯,它们是定义明确的运算符来比较原始值。

    【讨论】:

      猜你喜欢
      • 2010-09-16
      • 1970-01-01
      • 2020-07-19
      • 2017-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      相关资源
      最近更新 更多