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

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操作浏览器选项卡

相关推荐

Autodl抢GPU实战:我是如何用5行JavaScript代码实现自动化监控的

本文分享了如何用5行JavaScript代码实现Autodl平台GPU资源的自动化监控,解决GPU资源紧张时的抢购难题。通过浏览器控制台直接运行的极简方案,开发者可以实时检测GPU可用状态并接收系统通知,大幅提升资源获取效率。

weixin_33734785的博客 337

如何使用JavaScript检测空闲的浏览器选项卡

在某些情况下,当用户与我们的最终产品或应用程序进行交互时,我们发现自己会执行许多密集的,占用大量CPU的任务。启动轮询器,建立WebSocket连接,甚至加载视频或图片等媒体,都有可能成为性能障碍,尤其是当这些任务在不需要的情况下消耗资源的时候。 在用户没有主动与界面交互的同时,从不必要的工作负载或网络请求中释放主线程是一个非常好的和有意义的实践。换一种方式,在大多数主机提供商都在引入基于配额的定价模式的行业中,减少网络请求也可以降低运行应用程序或服务的成本。 页面可见性(Page Visibility) API 所有现代的网页浏览器都加入了页面可见性API,它允许我们检测浏览器的标签页何时

WPS JS宏办公自动化实战:从VBA迁移到现代JavaScript脚本开发

办公自动化是提升数据处理与报表生成效率的核心技术,其原理在于通过脚本程序替代人工重复操作,实现流程自动化。在技术价值层面,它不仅能显著减少人为错误、节省时间,还能构建复杂的数据处理逻辑。随着Web技术的普及,JavaScript因其在数据处理和网络交互方面的天然优势,逐渐成为办公自动化领域的新选择。WPS Office集成的JS宏功能,正是这一趋势的体现,它将现代JavaScript的灵活性与办公软件的对象模型相结合,为开发者提供了全新的脚本编写环境。在实际应用场景中,JS宏尤其擅长处理JSON数据、调用W

weixin_33696822的博客 609

选项卡兼容各个浏览器

兼容各个浏览器javascript选项卡 选项卡兼容各个浏览器

javascript 浏览器提示消息

给个小实例,注意在IE下的,没考虑兼容性,把以下代码拷贝到文本中,改成test.html就可以了 &lt;a href="#" onclick="clearNewMessageRemind();return false;"&gt;Stop flash&lt;/a&gt; &lt;script type="text/javascript"&gt; var newMessageRemind={ _s..

124

app每次更新版本时调用js代码提示用户下载更新

var url = '网络地址'; //APP升级 var wait; function update(){ //判断操作系统 var system = 'android'; if(mui.os.ios){ system = 'ios'; } mui.getJSON(url+'/apicommon/update/ind...

weixin_30900589的博客 319

js实现跨浏览器tab选项卡页通信、传参,监听localStorage.变量的实时变化,实现打开多个浏览器页面窗口相互可以传参通信

【代码】js实现跨浏览器tab选项卡页通信、传参,监听localStorage.变量的实时变化,实现打开多个浏览器页面窗口相互可以传参通信。

我驾驶汽车从不是为了从A点到达B点,我喜欢去感受汽车,与之交流,与之融为一体。 765

js语句实现网页中的选项卡(两种方法)

js语句实现网页中的选项卡方法一:以下是全部的代码;<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>选项卡</title> <style type="text/css"> *{margin: 0;padding: 0;} #

domunweb的博客 1493

java更新原理_webpack热更新(HMR)工作原理

开发环境下的热更新是 webpack 的一个特色功能,其大大提高了开发者的工作效率 -- 我们修改代码的同时浏览器就可以执行更新操作,且会保留当前状态。本文将讲解 webpack 的热更新原理。提示建议读者尽量关注热更新的流程,并辅以源码加以理解。下面对于源码的分析只会列出主干部分的内容,具体细节及边界处理感兴趣可自行查阅。另外,webpack 的源码随着版本的更新改动比较大,文末参考资料的第一篇...

weixin_32657693的博客 747

浏览器整个工作流程

了解从在浏览器地址栏中输入 url 到页面展现的短短几秒内浏览器究竟做了什么 了解浏览器的工作原理 over 目录一直在更新浏览器内核(渲染引擎+JS引擎)(***)浏览器架构(以chromium浏览器架构为例)(***)Chromium多进程架构页面导航过程发生了什么呢页面渲染过程浏览器主要功能(*) 浏览器内核(渲染引擎+JS引擎)(***) 渲染引擎: 获取网页的html, css, 图片等计算网页的显示方式, 并将其输出到显示JS引擎: 解析并执行js语言, 实现网页的动态效果 不同的内核对网

qq_36393081的博客 1094

favicon-badge:一个Polymer元素,用于使用动态设置的数字声明式更新Webapp的favicon。

favicon-badge:一个Polymer元素,用于使用动态设置的数字声明式更新Webapp的favicon。

JS实现的tab切换选项卡效果示例

主要介绍了JS实现的tab切换选项卡效果,结合具体实例形式分析了JS通过鼠标事件触发自定义函数控制页面元素样式变换实现tab切换功能的相关实现技巧,需要的朋友可以参考下

JS 实现浏览器的 title 闪烁、滚动、声音提示、chrome、Firefox、Safari等系统通知

JS 实现浏览器的 title 闪烁、滚动、声音提示、chrome、Firefox、Safari等系统通知

如何高效使用Ladybird浏览器:文件下载与进度监控全指南

Ladybird是一款真正独立的网页浏览器,提供了简洁高效的文件下载管理功能,帮助用户轻松掌控下载过程。本文将详细介绍Ladybird浏览器的下载管理机制,包括文件下载的触发方式、进度监控的实现方法以及相关的核心功能模块。 ## Ladybird下载管理核心功能 Ladybird浏览器的下载管理系统设计简洁而强大,主要包含以下核心功能: - **智能下载触发**:支持通过链接点击、上下文菜单

gitblog_01427的博客 656

Edge 浏览器插件模拟操作防止会话超时报告,浏览器插件推荐

Edge浏览器防会话超时插件方案 摘要 针对Edge浏览器因用户无操作导致服务器会话强制断开的问题,本报告推荐Browser Mouse Jiggler、MT Auto Clicker和Stay Awake Pro三款隐私安全的浏览器扩展方案。这些工具通过模拟用户鼠标移动/点击或发送心跳请求,在不干扰正常浏览、不涉及高风险权限的前提下,可持续维持会话活跃状态。报告详细分析了各方案的工作原理、配置方法及隐私保护措施,特别强调所有操作均在浏览器沙箱内完成,不会触发安全警报或影响系统级功能,是符合企业安全要求的轻

论文数据分析辅导,;论文人工智能辅导 huazhongxiaosx 417

基于LLM的渐进式浏览器代理:IntentWeave如何实现云端操作自动化

浏览器自动化是提升人机交互效率的关键技术,其核心原理在于模拟用户操作,自动执行网页端的点击、填写等任务。传统RPA方案依赖脚本录制,难以应对动态变化的Web界面。随着大语言模型(LLMs)的发展,智能体(Agent)技术为自动化带来了新的可能,它能够理解自然语言意图,并将其转化为可执行的操作序列。这种技术价值在于显著降低重复性工作的操作成本与认知负荷,尤其适用于云平台控制台、企业SaaS应用等需要频繁进行标准化流程操作的场景。本文聚焦的IntentWeave项目,正是这一趋势下的工程实践,它创新性地设计了渐

weixin_30265103的博客 364

PT-Plugin-Plus:PT种子下载助手浏览器插件使用指南

PT-Plugin-Plus是一款专为PT(Private Tracker)爱好者设计的浏览器插件,通过智能化的种子管理、多站点聚合搜索和下载客户端集成,大幅提升PT资源获取效率。这款插件支持Microsoft Edge、Google Chrome和Firefox等主流浏览器,为PT用户提供一站式种子下载解决方案,让繁琐的下载流程变得简单高效。 ## 🔍 PT资源管理的痛点与挑战 对于PT用

gitblog_02115的博客 932

如何快速搭建终极PT助手:PT-Plugin-Plus浏览器插件完整使用指南

PT-Plugin-Plus是一款专为PT(Private Tracker)爱好者设计的高效浏览器插件,通过集成多种实用功能,大幅简化了PT站点种子搜索、筛选和下载的工作流程。这款插件支持Microsoft Edge、Google Chrome和Firefox等主流浏览器,为PT用户提供了一站式的种子管理解决方案,让PT资源获取变得前所未有的简单高效。 ## 🎯 项目概述与核心价值 PT-P

gitblog_01077的博客 1050
上一篇: 按钮设计_成功的按钮设计原则
下一篇: 使用PHP和AJAX构建Bootstrap联系人表单
daique1908
博客等级 码龄10年 29粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值