kn007的个人博客
♥ You are here: Home > 点滴记录 > js改变浏览器标签标题

js改变浏览器标签标题

by | 41 Comments

提醒:本文最后更新于 3811 天前,文中所描述的信息可能已发生改变,请仔细核实。

71e1fa669d4cc8bb5cfd8c3eaf75c6ff如题,因为Chatbox写了个对象。。。好吧,写了个Object:

var changeTitle = {
	time: 0,
	originTitle: document.title,
	timer: null,
	change: function() {
		document.title = "~New Message Received~ " + changeTitle.originTitle;
	},
	notify: function() {
		if(document.title.indexOf("~New Message Received~")) clearTimeout(changeTitle.timer);
		document.title = "~New Message Received~ " + changeTitle.originTitle;
		changeTitle.timer = setTimeout(function(){changeTitle.clear();},3000);
	},
	flash: function() {
		changeTitle.timer = setTimeout(function () {
			changeTitle.time++;
			changeTitle.flash();
			if (changeTitle.time % 2 === 0) {
				document.title = "~                    ~ " + changeTitle.originTitle;
			}else{
				document.title = "~New Message Received~ " + changeTitle.originTitle;
			}
		}, 500);
	},
	reset: function() {
		clearTimeout(changeTitle.timer);
		document.title = changeTitle.originTitle;
	}
};

通过以下方法可以调用:

changeTitle.change();//更改标题
changeTitle.notify();//更改标题3秒后恢复
changeTitle.flash();//闪烁标题
changeTitle.reset();//复位标题

通过监听visibilitychange,你可以完成一些有意思的动作,比如进入和离开页面时改变标题(具体应该说标签为非前置状态时改变标题,标签前置状态时改变标题):

var changeTitle={time:0,originTitle:document.title,timer:null,change:function(){document.title="~New Message Received~ "+changeTitle.originTitle},notify:function(){if(document.title.indexOf("~New Message Received~"))clearTimeout(changeTitle.timer);document.title="~New Message Received~ "+changeTitle.originTitle;changeTitle.timer=setTimeout(function(){changeTitle.reset()},3000)},flash:function(){changeTitle.timer=setTimeout(function(){changeTitle.time++;changeTitle.flash();if(changeTitle.time%2===0){document.title="~                    ~ "+changeTitle.originTitle}else{document.title="~New Message Received~ "+changeTitle.originTitle}},500)},reset:function(){clearTimeout(changeTitle.timer);document.title=changeTitle.originTitle}};
document.addEventListener('visibilitychange', function() {
    if (document.hidden) {
        changeTitle.flash();
    } else {
        changeTitle.reset();
    }
});

上述例子,为方便显示把changeTitle对象压缩了。

最后,为情人节干杯。

转载请注明转自: kn007的个人博客 的《js改变浏览器标签标题

donate
有所帮助?
Tags: ,
Comments
41 Comments立即评论
  1. LV5
    回复

    Chatbox,对于个人博客来说,有点高大上了。还是为情人节干杯实际。 :lol:

    1. MOD
      回复

      @老杨: :cool: 朋友的一个项目,挺有趣的,所以帮手帮手,其后台还是蛮牛的。

    2. MOD
      回复

      @老杨: 比如你能真正的知道自Chatbox启动以来的用户数和连接数,相当于实际访客访问的IP和PV数(图左上),因为必须握手几次才能完成登入,而且以浏览器cookie作为准则,写不来cookie也不算,所以保证不是那种搜索引擎或者加载完就走的人。虽然已经过了看数据的博龄,但心情还是因此有点小激动的。
      右边,你可以看到对方的来源,现在在浏览什么,看了多久,甚至你还可以发送js给对方。
      还是蛮有意思的,说简单点,让你当回上帝。。。 :mrgreen:
      而且你还可以发送文件、图片、视频,两个人交谈时,有时就不必那么麻烦,有网就行。。特别是跟国外打交道,人家有的聊天工具跟我们不一样。
      http://ww4.sinaimg.cn/large/9160da2egw1f0yoslbyyqj211y0ijgsk.jpg

    3. LV5
      回复

      @kn007: 嗯,虚拟主机能玩不?

    4. MOD
      回复

      @老杨: 按道理不能,但其实也可以,但服务器端要托管在别人那,以后我们这边可以能会弄个服务器来跑这些托管的。具体要问ArchiTech,你也可以到主线的issue提出来,或许你可以第一个体验到。 :mrgreen:
      https://github.com/Arch1tect/Chatbox/issues

      如果你想尝试下控制面板,可以访问 http://lifeislikeaboat.com:4321/admin.html
      前端在 http://lifeislikeaboat.com:4321/ 和 http://lifeislikeaboat.com/

    5. MOD
      回复

      @老杨: 接上条回复,Token密码默认为12345

  2. 不明觉厉!

    1. MOD
      回复

      @嘚啵嘚的博客: 试试就知道了

  3. LV2
    回复

    刚才在github时间线里面看到你提问github pages生成器的问题,其实在repo的settings里有一个automatic page generator。

    1. MOD
      回复

      @王琪亮: 哦,我以为ArchiTech不知道,后来他说他知道 :lol:
      我就把comment删了,感谢你的PR。

  4. LV5
    回复

    :evil: :evil: 看了看大发那邪恶的标签标题,我也把这代码撸走了,哈哈……

    1. MOD
      回复

      @老杨: 哈哈,大发太贱了。

      用的话,主要用visibilitychange就可以了,不用那么麻烦。我这个毕竟考虑新消息提醒的环境。而单纯的通过切换标签来改变标签名词只要通过监控visibilitychange就好了。

      话说ArchiTech做了通用版本的Chatbox,可以免(虚拟)服务器运行,而且独立。
      你可以通过 https://github.com/Arch1tect/Chatbox 查看。

      至于 https://github.com/kn007/Chatbox ,暂时作为现阶段的stable版本,需要nodejs环境。

    2. LV5
      回复

      @kn007: 还是没看懂怎么个用法……

    3. MOD
      回复

      @老杨: 你说chatbox还是这个?

    4. MOD
      回复

      @老杨: 看这里
      http://arch1tect.github.io/Chatbox/
      拉到底。

  5. 网站速度杠杠的

    1. MOD
      回复
  6. LV1
    回复

    我觉得那个还能显示当前人数就挺好玩的,不过应该没多少人会用它来聊天把。

    1. MOD
      回复

      @Leyar: 是没有多少人

  7. LV7
    回复

    没看清白 用在哪里?
    右下角那个吗??

    1. MOD
      回复

      @World: 对的,用在了右下角那个。
      但这个代码可以拿去当别的用。

    2. LV7
      回复

      @kn007: 以前用ajax写过一个类似的在线聊天 和这个神似 :mrgreen: :mrgreen:

    3. MOD
      回复

      @World: :cool: 这个是长连接

  8. MOD
    回复

    http://ww4.sinaimg.cn/large/9160da2egw1f14zpfhc6fj20eh07rdgd.jpg
    每天都挺多人来的。。。 :cool:

    1. MOD
      回复

      @kn007: 截图时间 2016年2月21日 09:50 GMT+0800
      http://ww1.sinaimg.cn/large/9160da2egw1f16pztm7ftj20e107l74t.jpg

  9. LV5
    回复

    简直就是插了个眼!

    1. MOD
      回复

      @be.truth: 哈哈哈

  10. LV3
    回复

    大发的2014哈哈哈哈 :mrgreen:

    1. MOD
      回复

;-):|:x:twisted::smile::shock::sad::roll::razz::oops::o:mrgreen::lol::idea::grin::evil::cry::cool::arrow::???::?::!: