Change Tab Title with JavaScript

By  on  

Changing the tab (or window) title is an age old practice.  Gmail does it to notify the user of a new chat message and this blog does it to update the tab title after a new page loads via AJAX.  How is it done?  By setting a property on the document object, of course:

That property, of course, is document.title:

document.title = 'Hello!'; // New title :)

One common misconception is that you change the window.title property, but you must use the document object, otherwise you'll see no effect.  You'll oftentimes see a setInterval used with document.title to quickly change title to get the user's attention.

Recent Features

  • By
    Responsive Images: The Ultimate Guide

    Chances are that any Web designers using our Ghostlab browser testing app, which allows seamless testing across all devices simultaneously, will have worked with responsive design in some shape or form. And as today's websites and devices become ever more varied, a plethora of responsive images...

  • By
    CSS Gradients

    With CSS border-radius, I showed you how CSS can bridge the gap between design and development by adding rounded corners to elements.  CSS gradients are another step in that direction.  Now that CSS gradients are supported in Internet Explorer 8+, Firefox, Safari, and Chrome...

Incredible Demos

  • By
    HTML5’s placeholder Attribute

    HTML5 has introduced many features to the browser;  some HTML-based, some in the form of JavaScript APIs, but all of them useful.  One of my favorites if the introduction of the placeholder attribute to INPUT elements.  The placeholder attribute shows text in a field until the...

  • By
    Animated Progress Bars Using MooTools: dwProgressBar

    I love progress bars. It's important that I know roughly what percentage of a task is complete. I've created a highly customizable MooTools progress bar class that animates to the desired percentage. The Moo-Generated XHTML This DIV structure is extremely simple and can be controlled...

Discussion

  1. This is great – in 15 years of working in web design the thought of changing page title never crossed my mind. Could be useful though, cheers!

  2. If you want to be evil about it change it to:

    document.title = '(3) mytitle'; 
    

    And see how many people wonder what is unread :)

    • If that’s not in evil.js, it should be added immediately

    • Matthew

      Thats pure evil.

  3. Loilo

    That’s really nice – I always did that via getElementsByTagName and innerHTML, but this solution’s way more convenient.

  4. Of-course this is tricky. It also affects DOM document ( element in HTML). Also In XUL, retrieving document.title before document gets completely loaded has unfixed behavior (document.title might pull an empty result or may effect-less.)

  5. I’m happy to be corrected on this, but if you change the tab title after a screen reader initially caches the page, they are not informed of this change. So, if you are changing the page for a relevant reason, could this be a problem? The page title is the first thing screen readers hear when a page loads, and it is like a road map to where they are, where they want to be.

  6. This is such a simple tweak and can make us look our website state of the art!

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!