Webタイトルを使用して、Weiboやいくつかのメールアドレスなどの新しいメッセージをユーザーに促すことが非常に一般的です。これは非常に一般的です。関数を実装する方法は?
アイデアは、Ajaxを介して背景にアクセスします。Webページのタイトルを迅速なメッセージに置き換え、スペースを前後に切り替えます。例:[新しいニュースがあります]と[]トグル。プロンプトコンテンツは動的であるため、交換テキストのスペース数も計算されます。こちらのフルワイドスペースを使用してください。ただし、プロンプトメッセージに「番号」などの半幅の文字がある場合、問題が発生します。全幅のスペースは、半幅1の幅よりもはるかに広いです。このようにして、解決策は、全幅のキャラクターを完全な幅のスペースと、半幅のスペースに置き換えることです。
ただし、document.title = '';半幅のスペースの数に関係なく、ブラウザには1つだけが表示されます。使用すると、そのまま出力されます。タイトルdomオブジェクトを取得し、t.innerhtml = ''で変更します。
しかし、もちろんそうではありません。私たちのかわいいIEは、この時点で常にトラブルを起こすために出てきます。 IEブラウザでは、タイトルの内側のHTMLは読み取り専用です(タイトルだけでなく、COL、COLGROUP、フレームセット、HTML、スタイル、テーブル、TBODY、TFOOT、THEAD、TRのInnerHTML属性は読み取り専用です)。強制割り当てが行われた場合、「不明なランタイムエラー」が発生します。現在、私はあまり良い解決策を見つけていないので、特別に対処するためにtry {} catch(e){}を追加することしかできません
ソースコードを共有します:
コードコピーは次のとおりです。
<script type = "text/javascript"言語= "javascript">
var flashtitleplayer = {
start:function(msg){
this.title = document.title;
if(!this.action){
試す {
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;
}
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);
}、
停止:function(){
if(this.timer){
ClearInterval(this.timer);
this.action(this.title);
this.timerを削除します。
this.messagesを削除します。
}
}
};
関数FlashTitle(MSG){
flashtitleplayer.start(msg);
}
関数stopflash(){
flashtitleplayer.stop();
}
</script>
Firefox、Chromeの下では問題ありませんが、メッセージに1つの半幅の文字があるか、1つまたはまったくないことが促された場合、問題ありません。