这个简单的js代码有什么问题?

时间:2014-12-28 20:59:26

标签: javascript jquery

为什么这段代码没有显示id为blink的div?

我认为我已经完成了所有事情,当我点击按钮时它应该显示div。

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1/jquery.min.js"></script>


<div style="display:none; id="blink"">
    <p>we do not supppport your browser</p>
</div>

<script>
    var isChrome = (navigator.userAgent.indexOf("Chrome"));
    if (isChrome) 
    {
        $('#blink').show();
    };
</script>

4 个答案:

答案 0 :(得分:7)

除了拼写错误之外,代码不会像您认为的那样工作,因为String.indexOf(substring)成功时返回包含字符串中子字符串开头的位置(可能是{{ 1}}),并且在失败时返回0

尝试:

-1

...但是,请注意UA嗅探。如果你只是提醒用户提供你的支持,那么公平,但不要引诱基于浏览器关闭和打开网站功能,至少一个功能检测库不会导致你的可维护性问题和激怒你的用户。

答案 1 :(得分:1)

语法错误导致它无法显示。谈话标记有问题。将您的div html更改为:

<div style="display:none;" id="blink">
    <p>we do not supppport your browser</p>
</div>

答案 2 :(得分:1)

http://ajax.googleapis.com/ajax/libs/jquery/2.1/jquery.min.js无效。

但你可以改用这个(http://code.jquery.com/jquery-latest.min.js

所以...

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Code</title>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>

<body>


  <div style="display:none;" id="blink">
    <p>we do not support your browser</p>
  </div>

  <script>
    $(document).ready(function() {
     // Edit : index checking as user52889 said :)
      var isChrome = (navigator.userAgent.indexOf("Chrome") !== -1 );
      if (isChrome) {
        $('#blink').show();
      };

    });
  </script>
</body>

</html>

答案 3 :(得分:1)

首先,有一些错字。第二,检查正在使用的浏览器的更优雅的方法是:!!window.chrome

看看我的例子:

http://jsfiddle.net/f4qdtqgs/5/

var isChrome = !!window.chrome;

if (isChrome) {
    $("#blink").show();
};