Il est très courant d'utiliser le titre d'une page Web pour rappeler aux utilisateurs les nouveaux messages. Par exemple, sur Weibo et certaines boîtes mail, cette fonction est très courante. Comment implémenter cette fonction ?
L'idée est la suivante : accédez à l'arrière-plan via ajax. S'il y a de nouvelles nouvelles, remplacez le titre de la page Web par des informations rapides et alternez avec des espaces. Exemple : Basculez entre [Vous avez de nouvelles nouvelles] et [ ]. Le contenu de l'invite étant dynamique, le nombre d'espaces pour le texte de remplacement est également calculé. Utilisez ici des espaces sur toute la largeur. Mais s’il y a des caractères à demi-largeur tels que des « chiffres » dans le message d’invite, des problèmes surviendront. Un espace pleine largeur est beaucoup plus large qu’un espace demi-largeur 1. Dans ce cas, il sera inconfortable à regarder lors du flashage ; la solution est de remplacer les caractères pleine chasse par des espaces pleine chasse, et de remplacer les caractères demi-chasse par des espaces demi-chasse.
Mais document.title=' '; peu importe le nombre d'espaces en demi-largeur, le navigateur n'en affiche qu'un seul. S'il est utilisé, il est affiché tel quel ; seul var t=document.getElementsByTagName('title')[0] peut être utilisé. Récupérez l'objet dom du titre et modifiez-le via t.innerHTML=' ".
Mais est-ce que ça se passera aussi bien ? Bien sûr que non. Notre adorable image vient toujours causer des ennuis à ce moment-là. Dans le navigateur IE, le innerHTML du titre est en lecture seule (non seulement le titre, mais d'autres attributs innerHTML tels que : COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TR sont en lecture seule ). Si l'affectation est forcée, une « erreur d'exécution inconnue » se produira. Pour le moment, je n'ai pas trouvé de bon moyen. Je ne peux qu'ajouter try{}catch(e){} pour le gérer spécialement
Partagez le code source :