1

私はこのコードを持っています:

function noti() {
     document.title = document.title + " 1"
}

setInterval("noti()", 1000)

問題はそれが出力することです:

私のタイトル111 1 1 11.....無限に....1

これを「マイタイトル1」として出力する方法はありますか?

noti()関数は、データベースで更新が発生するたびに、データベースから収集された長さに関係なく、ユーザーのタイトルバーに出力されるときに目的として機能します。

つまり、「My title 1」、ここで「My title」はユーザーの名前であり、「1」はデータベースからの長さです。

4

3 に答える 3

3

noti一度だけ実行する場合は、を使用する必要があります。を使用する必要がsetTimeoutありますsetInterval

更新: OK、継続的に実行したいnotiが、毎回新しく追加するのではなく、サフィックスを置き換えます。これを正規表現replaceで行います。

document.title = document.title.replace(/(\b\s*\d+)?$/, " " + num);

実際の動作をご覧ください

于 2012-05-06T11:26:58.607 に答える
2

通常、このようなものがタグ付けされます。通常、のようなものが表示されます(1) My title

この場合、それは単純な問題です:

function noti(num) { // num is the number of notifications
    document.title = document.title.replace(/^(?:\(\d+\) )?/,"("+num+") ");
}
于 2012-05-06T11:28:27.520 に答える
2

試す:

var ttl = document.title; //initalize title
function noti() {
  document.title = ttl + " 1";
  //if you want to continue setting the title 
  //(so periodically repeat setting document.title) 
  //uncomment the following:
  //setTimeout(noti, 1000);
}

//use a function reference here. 'noti()' will
//cause the interpreter to do an eval
setTimeout(noti, 1000); 

使用すべきでない理由をご覧くださいsetInterval

于 2012-05-06T11:30:24.503 に答える