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

bal*_*pha 11 javascript google-chrome focus

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

当窗口/选项卡重新聚焦时,我想删除通知,即将标题重置为标准.但是,此重置有时在Chrome中不起作用.

当我来自不同的窗口时,标题会正确更新,但是当我来自同一窗口中不同选项卡时,它不会.

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

bal*_*pha 14

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

我想更改选项卡(导致选项卡移动到前景,因此重绘)并在结果焦点事件中更改标题(这也需要重绘)会导致某种竞争条件.

这就是我尝试这种解决方法的原因,实际上它确实起作用:

window.setTimeout(function () { $(document).attr("title", newtitle); }, 200);
Run Code Online (Sandbox Code Playgroud)

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

  • `$(document).attr('title',newtitle)`?`document.title = newtitle`更简单. (2认同)