1

私たちのフォーラムには、ページ タイトルに (#) を追加する通知システムがあります。# は、現在の通知 (メッセージ、いいねなど) の数です。これは AJAX などでは行われません。次のように、いくつかのページのテンプレート システムを使用して # of notifications を呼び出すだけです。

<title>({vb:raw total_notices}) - Our Site Title</title>

最新の更新を反映するために、タイトルを約 10 秒ごとに自動更新したいと考えています。フッターテンプレートでこれを試しました(すべてのページにロードされます):

<script type="text/javascript">
setInterval(function() {
        document.title = document.title;
        }, 3000);
 </script>

ただし、実際には更新されず、既存のタイトルを取得するだけです。コード自体が機能/更新されていることはわかっています。

document.title = "Test";

タイトルを「テスト」に更新しても問題ありません。

ありがとうございました!

4

1 に答える 1

1

document.title = document.title;実行してもフォーラム サーバーへのリクエストは行われないため、これは正常です。タイトルを更新したい場合は、リクエストを行う必要があります。

あなたのページにjqueryがある場合は、それを行うことができます:

setInterval(function() {
    $.get(document.location.toString()).then(function (data){
       //find and set the title of the page
       document.title = data.match(/<title>(.+)<\/title>/)[1];
    });
}, 3000);

それは機能しますが、このコードはサーバー上の多くのリクエストに対応するため、お勧めできません...

于 2013-03-06T21:26:50.047 に答える