一个网页标题title的闪动提示效果实现思路_javascript技巧

通过网页title来提示用户有新消息这个功能很常见,比如现在的微博,还有一些邮箱,这个功能都很常见。如何实现则个功能呢?

思路是:通过ajax访问后台,若有新消息,则将网页的title替换为 提示信息 ,并与空格来回切换。例:【你有新消息】与【     】切换。提示内容弄是动态的,所以替换文字的空格数目也是算出的。这里用全角的空格。但是如果提示消息中有‘数字'等半角字符的话就会出现问题。全角的空格比半角的1的宽度要宽的多。这样的话,闪动起来看着就不是很舒服;解决方法就是用全角的空格替换全角的字符,半角的空格替换半角的字符。
但是document.title=' ';不论半角空格有多少个,浏览器只显示一个。用 的话,它原样输出;只能用var t=document.getElementsByTagName('title')[0]。获取title dom对象,通过 t.innerHTML=' '来修改。

但会这么顺利么,当然不会。我们可爱的ie在这个时候总会出来捣乱。在ie浏览器下title的innerHTML是只读的(不光是title,其它的如:COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TR的innerHTML属性是只读的)。如果强制赋值的话会出现“未知的运行时错误”。目前我也没有找到很到的办法,只能加上try{}catch(e){}对它进行特殊处理了
分享下源代码:

复制代码 代码如下:

<script type="text/javascript" language="javascript">
var flashTitlePlayer = {
start: function (msg) {
this.title = document.title;
if (!this.action) {
try {
this.element = document.getElementsByTagName('title')[0];
this.element.innerHTML = this.title;
this.action = function (ttl) {
this.element.innerHTML = ttl;
};
} catch (e) {
this.action = function (ttl) {
document.title = ttl;
}
delete this.element;
}
this.toggleTitle = function () {
this.action('【' + this.messages[this.index = this.index == 0 ? 1 : 0] + '】欢迎访问简明现代魔法');
};
}
this.messages = [msg];
var n = msg.length;
var s = '';
if (this.element) {
var num = msg.match(/\w/g);
if (num != null) {
var n2 = num.length;
n -= n2;
while (n2 > 0) {
s += " ";
n2--;
}
}
}
while (n > 0) {
s += ' ';
n--;
};
this.messages.push(s);
this.index = 0;
this.timer = setInterval(function () {
flashTitlePlayer.toggleTitle();
}, 1000);
},
stop: function () {
if (this.timer) {
clearInterval(this.timer);
this.action(this.title);
delete this.timer;
delete this.messages;
}
}
};
function flashTitle(msg) {
flashTitlePlayer.start(msg);
}
function stopFlash() {
flashTitlePlayer.stop();
}
</script>

火狐,chrome下没问题,ie当提示消息中有一个或没有半角字符时没问题。

时间: 2024-10-30 16:29:26

一个网页标题title的闪动提示效果实现思路_javascript技巧的相关文章

一个网页标题title的闪动提示效果实现思路

 通过网页title来提示用户有新消息这个功能很常见,下面有个不错的示例,大家可以参考下 通过网页title来提示用户有新消息这个功能很常见,比如现在的微博,还有一些邮箱,这个功能都很常见.如何实现则个功能呢?    思路是:通过ajax访问后台,若有新消息,则将网页的title替换为 提示信息 ,并与空格来回切换.例:[你有新消息]与[ ]切换.提示内容弄是动态的,所以替换文字的空格数目也是算出的.这里用全角的空格.但是如果提示消息中有'数字'等半角字符的话就会出现问题.全角的空格比半角的1的

js实现网页标题栏闪烁提示效果实例分析_javascript技巧

本文实例讲述了js实现网页标题栏闪烁提示效果的方法.分享给大家供大家参考.具体分析如下: 网页标题栏闪烁效果我们在一些聊天工具会常看到,像现在流量的聊天室,下面我们就来给大家总结一款实现网页标题栏闪烁提示代码,感兴趣可参考一下. 公司的项目中用到了这个新消息提示的效果,主要用于提示用户有新消息.具体实现代码如下: 复制代码 代码如下: var newMessageRemind={ _step: 0, _title: document.title, _timer: null, //显示新消息提示

js写一个弹出层并锁屏效果实现代码_javascript技巧

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

JS实现仿中关村论坛评分后弹出提示效果的方法_javascript技巧

本文实例讲述了JS实现仿中关村论坛评分后弹出提示效果的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/x

JavaScript制作淘宝星级评分效果的思路_javascript技巧

小编也是刚开始学JavaScript,觉得淘宝评星效果很棒,于是产生了自己写一个的想法,先给大家分享一下实现效果: 现附上自己写的源代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script language="JavaScript" type="text/javascript">

javascript实现的鼠标链接提示效果生成器代码_javascript技巧

  演 示 源 代 码   <a href="http://" onMouseOver="showtip2(this,event,'')" onMouseOut="hidetip2()"></a> 链接注释 注释:放在<body>与</body>之间 <script> if (!document.layers&&!document.all) event="tes

网页标题Title标签使用详解

Title标签在网站中起到画龙点晴的作用,合理的构造Title标签,不但能突出网页的主题,还有助于提高网站的搜索引擎排名,还能下面Seoer惜缘与大家分析下怎样合理的使用Title标签: 一.每个页面的Title标签不能相同,首页与栏目页.列表页.内容页的标签不能一致,根据网页提供的内容的不同,设置合适的Title标签. 二.Title标签设置要与内容相关,可以设置使用标题.关键字.概述等. 三.Title标签尽量要有原创性.修改性,采编过来的内容内容,不要拿来即用,要适当的修改,添加些原创因素

JS实现消息来时让网页标题闪动效果的方法_javascript技巧

本文实例讲述了JS实现消息来时让网页标题闪动效果的方法.分享给大家供大家参考,具体如下: <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> <script> var g_blinkid = 0; var g_blinkswitch = 0; var g_blinktitle = doc

网页标题Title如何写才能提高网站的排名?

TITLE的写法,以我最近新做的一个网站为例: <title>免费下载图片处理软件-Picasa中文版</title> A:title标签对于提高你网站的排名起到非常重要的作用.尽管如此,有很多人对于怎样去构造一个合适的title还不是很清楚.以下是我对title的一点看法,欢迎大家提出建议.批评. 1.title前7-9个词是最重要的.但是有很多人将他们公司的名字放在titile的最前面,这是多么浪费啊.这好像要你的孩子不带课本去上学一样. 2.第二是语法,我注意到google比