js操作浏览器选项卡

具有频繁更新内容的网站和Web应用程序必须找出一种方法来吸引用户的注意力,以将更新告知用户,尤其是在用户可能离开了该网站或应用程序处于活动状态的选项卡的地方。

您会在野外看到几种常见的模式。 诸如Facebook,Twitter和LinkedIn的社交网站可能每隔几秒钟就会收到新内容,因此将相关数字插入页面标题中,以在选项卡中显示新更新的数量。 另一方面,Trello在该图标上显示了一个红色的小徽章。

在本教程中,我们将复制这种形式的反馈设计,利用浏览器选项卡作为通知用户更新的媒介。 查看演示,然后看看它是如何完成的。

使用文件标题

我们将在页面标题后添加新更新的数量,类似于Facebook和Twitter的做法。

在现实世界中,我们可能会以多种方式检索数据(与友好的开发人员联系)。 在这种情况下,我们假设已经获取了更新数量,并且可以使用该数字在JavaScript中玩游戏。 目前,似乎我们当前的更新为零,因此我们将该数字传递给变量:

var count = 0;

接下来是我们代码的内容,我们将在其中更改文档标题。 首先,我们添加document.title ,它将检索我们当前的文档标题:

var title = document.title;

然后,我们创建一个新函数来更改该标题中的字符串:

function changeTitle() {
count++;
var newTitle = '(' + count + ') ' + title;
document.title = newTitle;
}

在这里您可以看到我们使用了JavaScript ++运算符。 出于演示的目的, ++将每次迭代的count增加1 。 当我们从0开始时,下一次迭代将返回1 。 我们使用++运算符来模拟数字增量,因为我们无权使用API​​向我们提供实数。

接下来,我们创建另一个新函数,它将运行changeTitle()函数:

function newUpdate() {
update = setInterval(changeTitle, 2000);
}
var docBody = document.getElementById('site-body');
docBody.onload = newUpdate;

上面的函数假定我们需要每2000毫秒(2秒)检查一次新更新。 我们的函数changeTitle()将在该间隔内连续运行。 页面加载后,我们将立即运行此功能。

第一种方法非常简单。 我们检索数字并将其传递给标题。 您可以通过在changeTitle()函数中将数字括起来的括号从( )更改为[ ]{ }

使用Favicon

现在,我们将尝试第二种方法,即像Trello Web应用程序一样更改图标图标 。 为此,我们需要准备两个favicon变体,其中第二个变体是每当我们收到新更新时将显示的替代物。

首先链接文档中的第一个图标。

<link id="favicon" rel="icon" href="img/favicon.gif?v3"/>

然后在JavaScript变量中设置新图标的路径。

var iconNew = 'img/favicon-dot.gif';

与第一种方法一样,我们还将创建两个函数:

function changeFavicon() {
document.getElementById('favicon').href = iconNew;
}
function newUpdate() {
update = setInterval(changeFavicon, 3000);
setTimeout(function() {
clearInterval( update );
}, 3100);
}
var docBody = document.getElementById('site-body');
docBody.onload = newUpdate;

第一个功能changeFavicon()会将我们的初始图标替换为带有红色徽章的图标。 第二个函数newUpdate()将在指定时间内执行第一个函数。

第二种方法并不像您最初想的那么复杂。 实际上,它比我们更新页面标题字符串的第一个简单。 此外,我们可以将更多的创造力注入到替代图标中。 例如,我们可以使红色标志闪烁而不是静止(现在要小心。),或者更改整个图标的颜色和图标。

注意 :Chrome不支持带有动画GIF的网站图标。

使用Favico.js

最后,我们现在将使用由Miroslav Magda开发JavaScript库Favico.js 。 该库提供了一个方便的API,其中包含大量的选项来更改图标,例如一起显示徽章和更新次数。

首先,使用JavaScript定义一个新的Favico实例,该实例定义徽章的位置,动画,背景颜色以及文本颜色。

var favicon = new Favico({
position  :'up',
animation :'popFade',
bgColor   :'#dd2c00',
textColor :'#fff0e2'
});

然后,我们添加了几个函数来运行此新实例,并最终在网站图标中显示徽章。

var num = 0;
function generateNum() {
num++;
return num;
}
function showFaviconBadge() {
var num = generateNum();
favicon.badge(num);
}
function newUpdate() {
update = setInterval(showFaviconBadge, 2000);
}
var docBody  = document.getElementById('site-body');
docBody.onload = newUpdate;

该代码有点像我们之前做的第一个方法。 我们从创建函数开始,该函数将模拟将在徽章中显示的更新数量。 第二个函数showFaviconBadge() ,是将数字插入徽章中,并在showFaviconBadge()显示徽章。 最后一个函数newUpdate()将在指定的时间间隔内运行第二个函数,使我们有一种接收新更新的感觉。

结论

在本教程中,我们使用浏览器选项卡作为通知用户的媒介。 我们已经复制了流行的网站(如Facebook,Twitter和Trello)中普遍使用的方法,并评估了它们的局限性。

同样,您可能必须进行一些更改以使其适合您的特定Web应用程序,但是此处的示例为您提供了一个很好的起点!

翻译自: https://webdesign.tutsplus.com/tutorials/how-to-display-update-notifications-in-the-browser-tab--cms-23458

js操作浏览器选项卡

js操作浏览器选项卡_如何在浏览器选项卡中显示更新通知相关推荐

  1. delphi 调用浏览器内核_深入理解浏览器原理

    导语:本文从市面主流的浏览器及相应的内核引擎开始,介绍了Chromium为代表的浏览器架构及Blink内核的功能架构.Chromium为多进程架构,用户从启动运行浏览器后,先后经过页面导航.渲染.资源 ...

  2. 浏览器崩溃_如何在浏览器不崩溃的情况下过滤200万行数据?

    作者|Bruno Couriol 编辑|无明 最近我分配到了一个非常有趣的任务:在前端显示 1GB 文件和 200 万行数据,并实现过滤,在这篇文章中,我将分享我是如何完成这个任务的. 背景 我曾经创 ...

  3. serversocket 返回浏览器图片_深入理解浏览器的缓存机制

       戳蓝字「前端技术优选」关注我们哦! 一.前言 缓存可以说是性能优化中简单高效的一种优化方式了.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽 ...

  4. ie浏览器修复_[图]三大Windows 10获得累积更新 修复IE和无法运行Access 95数据库问题...

    上周的补丁星期二活动日中,微软面向所有尚处于支持状态的Windows版本发布了新的累积更新.不过几天后,这些累积更新官方支持文档都添加了新的已知问题,例如无法运行Access 95数据库以及IE浏览器 ...

  5. java浏览器内核_深入理解浏览器内核 - 概述

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 继"汉芯"事件造假之后,近期"红 ...

  6. 浏览器体系结构_了解代理浏览器:体系结构

    浏览器体系结构 I did a bunch of research on proxy-browsers for a few projects I worked on. Rather than sitt ...

  7. 浏览器兼容_查成绩浏览器不兼容怎么办?

    2020教资交流群 (扫码进群) 加群及时了解考试动态.免费备考资料 今晚19:00,面试报名指导及复习计划? 问题:教师资格证查询不是IE6-IE10系列浏览器,怎么办? 答:由于系统兼容性不足,所 ...

  8. 浏览器用户代理_什么是浏览器的用户代理?

    浏览器用户代理 Your browser sends its user agent to every website you connect to. We've written about chang ...

  9. office2019选框虚线_怎么在word表格中显示和隐藏表格中的虚线框

    我们知道word中的表格虚线框打印出来是不会显示的,使用虚框的目的就是让我们更能直观的对数据进行编辑和排版,使用word的用户在制作表格的时候都会用虚线框来进行一个简单的排版设置,接下来看看在word ...

  10. clr20r3错误问题定位与解决_解决Power BI服务中显示时间错误的问题

    ​本文来自PowerBI星球嘉宾AgnesJ的分享,关于PowerBI Service 中显示时间的问题. 也许很多人都遇到过这个困惑,做好的可以正常显示本地时间的报告,发布到web后,时间却不正确了 ...

最新文章

  1. 帮奶牛找对象?华为云AI黑科技大揭秘
  2. 互联网时代大数据的核心价值
  3. linux raw限制端口访出,使用Linux raw socket时需要注意的一些问题
  4. 二叉树和哈希表的优缺点对比与选择
  5. GitHub动作简介
  6. 洛谷P2709 小B的询问
  7. Webmax简易入门操作手册(一)
  8. 华为交换机端口限速配置说明
  9. python控件布局常用三种方法_控件布局
  10. 21.运行Consent Page
  11. 大学计算机知识点cad,大学cad考试试题「附答案」
  12. DVB数字电视系统简介(DVB-C,DVB-S,DVB-T)
  13. 微信演进的六点思考:微信生态如何演变?如何在其中掘金?
  14. 笑面的学校日常(14)最近一次更新2017 04 06
  15. Win下制作U盘安装盘二
  16. 365天挑战LeetCode1000题——Day 103 400题 检查二进制字符串字段 最大子序列交替和 最低票价 K 站中转内最便宜的航班
  17. ECNU_OJ_1026
  18. iOS复习记录日记07-静态单元格和qq好友分组功能[2020]
  19. jupyter notebook中R语言绘图画布大小设置
  20. 两条线段是否相交,计算交点公式。

热门文章

  1. dell 服务器启用虚拟化,打开DELL R410服务器BIOS虚拟化步骤(图文教程)
  2. 2019年ACM大赛:北大清华无缘前十,莫斯科大学第一
  3. 佛山科目三仙塘中腾考场-考试要点(已经有新考场,这是旧考场经验)
  4. 线程数据共享:pthread_getspecific和pthread_setspecific
  5. 计算机WIN7系统网络访问权限设置,win7系统ipv6无网络访问权限如何解决?
  6. 前端小白的挖坑填坑之路。
  7. 百度云OCR文字识别
  8. Android RSASHA加密
  9. 51单片机DS18B20(单总线)温度读取
  10. WORD 公式编辑工具