当用户在不同的选项卡中时,jQuery 更改页面的标题

发布于 2024-11-18 22:02:08 字数 172 浏览 2 评论 0原文

我的页面上有实时聊天。 我想更改标题(使用像 omegle.com 中那样移动的内容)当收到新消息并且用户不在与实时聊天相同的选项卡中时。当用户返回选项卡时,标题将恢复正常。

我想这应该由 jQuery 来完成。您知道任何插件吗?或者我该怎么做?

I have live chat on my page. I want to change the title (with something moving like in omegle.com) when a new message is received and the user is not in the same tab as the live chat. When the user returns to the tab, the title would return to normal.

I guess it should be done by jQuery. Do you know any plugins or how can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

哑剧 2024-11-25 22:02:08

标题只能像这样编辑:

document.title = "blah";

所以你可以这样做:

var origTitle = document.title;
document.title = "You have ("+x+") new messages - "+origTitle;

要使其闪烁,你必须使用 setTimeout(); 做一些事情;

var origTitle = document.title;
var isChatTab = false; // Set to true/false by separate DOM event.
var animStep = true;
var animateTitle = function() {
    if (isChatTab) {
        if (animStep) {
            document.title = "You have ("+x+") new messages - "+origTitle;
        } else {
            document.title = origTitle;
        }
        animStep = !animStep;
    } else {
            document.title = origTitle;
            animStep = false;
    }
    setTimeout(animateTitle, 5000);
};

animateTitle();

Title can only be edited like so:

document.title = "blah";

So you could do:

var origTitle = document.title;
document.title = "You have ("+x+") new messages - "+origTitle;

To make it flash you would have to do something with setTimeout();

var origTitle = document.title;
var isChatTab = false; // Set to true/false by separate DOM event.
var animStep = true;
var animateTitle = function() {
    if (isChatTab) {
        if (animStep) {
            document.title = "You have ("+x+") new messages - "+origTitle;
        } else {
            document.title = origTitle;
        }
        animStep = !animStep;
    } else {
            document.title = origTitle;
            animStep = false;
    }
    setTimeout(animateTitle, 5000);
};

animateTitle();
依 靠 2024-11-25 22:02:08

尝试

$('title').text("some text");

Update

显然,在 IE 中,$('title')[0].innerHTML 返回 </code> 标记的内容,但您无法设置它的值,除非使用 <code>document.title</code>。我想这应该是对 jQuery API 的改进,因为 <code>$('title')[0]</code> 确实返回了 DOMElement (<code>nodeType = 1</code>)...

try

$('title').text("some text");

Update

Apparantly, in IE, $('title')[0].innerHTML returns the content of the <title> tag, but you can't set it's value, except using document.title. I guess this should be an improvement to the jQuery API, since $('title')[0] does return a DOMElement (nodeType = 1)...

断念 2024-11-25 22:02:08

$('title').text('your title') 就足够了。

要查看您是否采取了正确的路径,只需使用 IE 的开发人员工具栏 (F12) 并转到控制台并写入 $('title'),您应该在控制台中看到 [...]。这意味着 $('title') 是一个对象,并且一直有效。然后写入 typeof $('title').text,您应该会看到 function 作为结果。如果这些测试都正常,那么你的 IE 就坏了。

$('title').text('your title') suffices.

To see if you're taking the right path, simply use IE's developer toolbar (F12) and go to console and write $('title'), you should see [...] in console. This means that $('title') is an object and it works up to here. Then write typeof $('title').text, and you should see function as the result. If these tests are OK, then your IE is broken.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文