首页 > 解决方案 > 如果用户使用 uc 浏览器访问我的网站,则显示警报

问题描述

我有一个网站,我想在其中向使用 UC 浏览器的访问者发出警报。(下面的代码是在 javascript 中)。我也想在 javascript 中得到答案

对于 UC 浏览器

<script>
    if (navigator.userAgent.indexOf(' UCBrowser/') >= 0) {
       alert("Hello! I am an alert box!");
    }
</script>

适用于 UC mini

<script>
    if (navigator.userAgent.match(/^Mozilla\/5\.0 .+ Gecko\/$/)) {
        alert("Hello! I am an alert box!");
    }
</script>

我知道其中一个会起作用。我从互联网上找到了这段代码。请指导我此代码是否正确。最重要的是,我想每天为具有 Ip address 的同一用户显示一次警报。请帮我解决一下这个。

标签: javascriptjquerybrowserweb-based

解决方案


对于UCBrowser

navigator.userAgent.indexOf(' UCBrowser/') >= 0

意味着在 userAgent 中你有 "UCBrowser/" 字符串

对于UCMini,您可以这样做:

navigator.userAgent.indexOf(' UCMini/') >= 0

如果要加入这两个条件,请执行以下操作:

if (navigator.userAgent.indexOf(' UCBrowser/') >= 0 || navigator.userAgent.indexOf(' UCMini/') >= 0) {
       alert("Hello! I am an alert box!");
    }

完整的解决方案

现在要做一天只显示一次消息你需要存储最后一个警报时间戳,你可以选择你喜欢的方法,我认为最简单的是使用本地存储,这里有完整的代码注释:

if (navigator.userAgent.indexOf(' UCBrowser/') >= 0 || navigator.userAgent.indexOf(' UCMini/') >= 0) {

  // get current timestamp
  now = new Date().getTime();

  // get last timestamp or zero if not present
  last = JSON.parse(localStorage.getItem('last') || 0 )

  // set the last timestamp for next visit
  localStorage.setItem('last', now);

  // if fist time visit (last == 0) or more the 24 hours (86400 seconds) -> alert
  if ( last == 0 ){
    alert("Alert first time");
  }else if( last != 0 && now - last > 86400 ){
    alert("Alert next time");
  }

}



推荐阅读