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

相关推荐

青龙面板+Node.js打造飞牛社区全自动签到系统:从部署到消息通知

本文提供了一份详细的青龙面板与Node.js配置教程,指导用户从零开始搭建飞牛社区全自动签到系统。内容涵盖青龙面板的安装部署、Node.js环境配置、核心签到脚本的编写与调试,以及如何设置定时任务和集成消息通知,实现真正的签到自动化,彻底解放双手。

weixin_29245767的博客 305

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

125

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

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

weixin_33696822的博客 750

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的博客 320

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

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

weixin_33734785的博客 375

选项卡兼容各个浏览器

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

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

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

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

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

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

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

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

domunweb的博客 1494

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

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

UVM入门与进阶学习笔记17——寄存器模型(3)

目录寄存器模型的常规方法mirror、desired和actual valueprediction的分类自动预测显式预测uvm_reg的访问方法mem与reg的联系和差别内建(built-in)sequences寄存器模型内建序列存储模型内建序列寄存器健康检查寄存器应用场景寄存器检查功能覆盖率概述覆盖率自动收集模式覆盖率外部事件触发收集 寄存器模型的常规方法 mirror、desired和actual value 在应用寄存器模型时,除了利用它的寄存器信息,也会利用它跟踪寄存器的值。 寄存器模型中的每

weixin_41979380的博客 7538

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

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

weixin_32657693的博客 749

EDKII实战:手把手调试PciHostBridge.c,看UEFI如何分配你的PCIe设备资源(IO/Memory空间)

本文深入解析EDKII中PciHostBridge.c模块的工作原理,详细指导如何调试PCIe设备资源分配(IO/Memory空间)。通过实战案例展示UEFI环境下Root Bridge初始化、地址空间转换及协议安装等核心流程,提供常见问题排查方法与性能优化建议,帮助开发者解决PCIe设备兼容性问题。

weixin_29201933的博客 209

浏览器整个工作流程

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

qq_36393081的博客 1101

使用 ArxivLoader 从 arXiv 加载学术文献并实现高效文档处理

arXiv是一个开放获取的学术存储平台,涵盖了物理、数学、计算机科学等多个领域的 200 万篇学术论文。这些文献中包含了如逻辑推理、机器学习等热门领域的最新研究进展。通过使用 ArxivLoader,我们可以轻松地搜索和加载 arXiv 上的学术文献,并将其转换为文本以供分析或应用于下游任务,例如问答系统、摘要生成或知识图谱构建。有时我们并不需要完整的文献内容,而是只需要摘要用于快速预览。可以使用 get_summaries_as_docs()# 获取文献摘要# 查看第一篇摘要。

hgSdaegva的博客 889

STM32+CubeMX实战:5步搞定LWIP HTTP服务器搭建(附常见编译错误解决)

本文详细介绍了基于STM32和CubeMX平台,快速搭建LWIP HTTP服务器的5步实战指南。内容涵盖从项目初始化、LWIP深度配置到解决经典的`HTTPD_FSDATA_FILE`编译错误,并分享了使用VSCode进行高效开发的工作流,旨在帮助嵌入式开发者快速实现网络功能并规避常见陷阱。

weixin_29192365的博客 575

changedetection.io 网页监控完整教程:从 Docker 部署到自动通知

changedetection.io 是一款开源的网页监控工具,它定期抓取页面内容、比对差异,并在页面发生变化时自动推送通知。它适合价格追踪、补货提醒、内容更新和 API 数据监控等场景,部署在你自己的服务器上即可免费使用。 ## 项目速览 该项目的定位很直接:让你的服务器替你持续"盯"着关心的页面,有变化就报告。 | 核心能力 | 说明 | 适合谁 | | --- | --- | ---

gitblog_01056的博客 405

【嵌入式 – GD32开发实战指南(ARM版本)】第1部分 基础篇 - 第1章 开发环境搭建

开发环境: MDK:Keil 5.30 MCU:GD32F207IK 1.1 GD32F207I-EVAL开发板简介 笔者使用的开发板是兆易创新设计的GD32F207I-EVAL开发板。 GD32F207I-EVAL开发板使用 GD32F207IK作为主控制器,主频120MHz、集成3MB Flash、256KB SRAM、通用定时器*10、Adv. TM*2、Basic TM*2、系统时钟*1、看门狗*2、RTC*1、USART*4、UART*4、I2C*3、SPI*3、I2S*1、SDIO*1、CAN

不问归期的博客 9993

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

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

gitblog_01427的博客 673

PyQt5简介和安装

在initUI方法中,设置了窗口的标题和大小,并创建了一个按钮。PyQt5是一个功能强大的Python界面开发框架,可以轻松创建跨平台的图形用户界面应用程序。本文介绍了PyQt5的简介和安装方法,并提供了一个简单的示例应用程序来演示PyQt5的基本用法。PyQt5是一个功能强大的Python界面开发框架,它提供了丰富的工具和组件,用于创建跨平台的图形用户界面(GUI)应用程序。信号是控件发出的事件,槽是与之关联的处理函数。接下来,我们将编写一个简单的PyQt5应用程序,以演示PyQt5的基本用法。

XdKwargs的博客 225

YOLOv11改进 | Conv/卷积篇 | 轻量化多尺度异构卷积(MSHC)优化YOLOv11精度(全网独家首发)

本文介绍了Hype-YOLO提出的MANet结构,这是C3、C2f、C3k2的升级版,能显著增强特征提取能力。MANet整合了DSConv和C2f结构,通过多分支异构设计提升梯度流动和特征语义深度。文章详细解析了MSHC模块的原理,包括其多尺度并行建模、通道混洗等核心机制,并提供了完整的代码实现和训练教程。实验表明,Hype-YOLO的精度优于YOLOv11。该结构在保持轻量化的同时,通过异构分支设计实现了更丰富的特征表达,适用于目标检测等视觉任务。

Snu77的博客 956

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

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

AI 前沿技术实战博客:LLM / Agent / AI 制药 / 生信四大栏目日更,硬核干货 + 可复现代码,看完就能上手 498

基于VisionMaster实现数据实时存储至MySQL (二)

摘要:之前的分享主要聚焦于简单的一维数据实时存储。但在做缺陷检测项目时,情况往往更加复杂:一张检测图像中可能同时存在多个缺陷,每个缺陷都有一组独立的核心参数(如质心、长短轴、面积等)。如何在 MySQL 中记录这些成组出现的缺陷数据,而不只是简单的单条记录?

haier123888的博客 227

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

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

weixin_30265103的博客 367

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

新手windows新电脑配置(暂停更新,node配置)

只适用于刚刚买的新电脑。

qq_44990881的博客 788

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

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

gitblog_01077的博客 1050

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: 按钮设计_成功的按钮设计原则
下一篇: 使用PHP和AJAX构建Bootstrap联系人表单
daique1908
博客等级 码龄10年 29粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值