在聚焦窗口时更改窗口标题在Chrome中不起作用

时间:2010-06-01 18:47:45

标签: javascript google-chrome focus

我(ab)使用文档标题作为某种通知区域。如果有问题的选项卡/窗口在我想要通知用户某事时没有焦点,我会更改窗口标题以包含一些通知。

当窗口/标签重新聚焦时,我想删除通知,即将标题重置为标准。但是,此重置有时在Chrome中无效。

当我来自不同的窗口时,标题会正确更新,但当我来自同一窗口中的不同标签时,它不会。< / p>

我找到了解决方法(我会将其作为答案发布),但请分享您可能需要解决的任何其他想法。

3 个答案:

答案 0 :(得分:14)

这似乎是Chrome中关于实际重新绘制标题标题的错误,因为文档标题本身(即在DOM中)实际上已正确更新。

我认为更改选项卡(导致选项卡移动到前景,因此需要重新绘制)并在生成的焦点事件中更改标题(这也需要重绘)会导致某种竞争条件。

这就是为什么我尝试了这种解决方法,实际上确实有效:

window.setTimeout(function () { $(document).attr("title", newtitle); }, 200);

- 在更新标题之前等待一小段时间,这样两个重绘事件就不会相互冲突。显然,这并不漂亮,但0.2秒的延迟通常不应成为问题。

答案 1 :(得分:1)

虽然tiftik说这个错误已经修复,但它仍然发生在我的Chrome(第21版)上。

解决方案balpha也适用于我 - 但请注意不要将文档标题设置为Focus上的新标题,而是等待200ms再次设置它 - 这不起作用! (可能是因为Chrome认为它是相同的标题,所以它不会更新)

等待200毫秒并设置它 - 工作正常!

答案 2 :(得分:0)

供将来参考:此错误目前已修复。