1

我们的论坛有一个通知系统,将 (#) 附加到页面标题,# 是他们当前拥有的通知数量(消息、喜欢等)。这不是由 AJAX 或任何东西完成的 - 只是使用他们的模板系统调用多个页面的通知 #,如下所示:

<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 回答