É muito comum usar o título da Web para levar os usuários a novas mensagens, como o Weibo e alguns endereços de email, que são muito comuns. Como implementar uma função?
A idéia é: acesse o plano de fundo através do AJAX. Exemplo: [você tem novas notícias] e [] alternar. O conteúdo rápido é dinâmico, portanto o número de espaços no texto de reposição também é calculado. Use espaços de largura total aqui. No entanto, se houver caracteres de meia largura, como "número" na mensagem rápida, haverá problemas. Os espaços na largura total são muito mais largos que a largura da meia largura 1. Dessa forma, não será muito confortável piscar;
Mas document.title = ''; não importa quantos espaços de meia largura sejam, o navegador exibe apenas um. Se usado, ele é produz; Obtenha o título DOM Object e modifique -o por t.innerhtml = ''.
Mas será tão bem, é claro que não. Nosso IE fofo sempre sairá para causar problemas neste momento. No navegador do IE, o inerhtml do título é somente leitura (não apenas o título, mas os atributos innerhtml de Col, Colgroup, FrameSet, HTML, Style, Table, Tbody, Tfoot, Thead, TR são lidos). Se uma atribuição forçada for feita, ocorrerá um "erro de tempo de execução desconhecido". Atualmente, não encontrei uma solução muito boa, então só posso adicionar tente {} catch (e) {} para lidar com isso especialmente
Compartilhe o código -fonte:
A cópia do código é a seguinte:
<script type = "text/javascript" idioma = "javascript">
var flashTitleplayer = {
Iniciar: function (msg) {
this.title = document.title;
if (! this.action) {
tentar {
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;
}
exclua este.Element;
}
this.toggletitle = function () {
this.action ('【' + this.messages [this.index = this.index == 0? 1: 0] + '] Bem -vindo à simples magia moderna ");
};
}
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);
exclua this.timer;
excluir this.messages;
}
}
};
função flashtitle (msg) {
flashtitleplayer.start (msg);
}
função stopflash () {
flashTitLePlayer.stop ();
}
</script>
Firefox, sem problemas no Chrome, sem problemas quando o IE é solicitado que exista um ou nenhum caractere de meia largura na mensagem.