Twitter: raymondcamden


Address: Lafayette, LA, USA

Simple Trick - Adding a Play Indicator to the Browser Tab

02-04-2014 3,764 views Development, JavaScript 6 Comments

I'm a Soundcloud user and a while ago I noticed they did something cool with their interface - a "Play" icon when you are playing music.

If you've ever been jamming out and needed to quickly mute your computer then this is a nice way to see which browser tab is making sound. In fact, the most recent Chrome now makes this built in:

In this case the native indicator is on the right. This is especially handy for cases where a site feels that their users are too stupid to know how to play video and use autoplay. (And let's be clear, if you use autoplay, you think your users are idiots. Either that or you are just a rude jerk who feels the need to .... ok sorry I'll stop my rant now. ;)

So I knew this was trivial code but I wanted to build my own little example of this - just for the heck of it.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
		<title>Some Page</title>
		<meta name="description" content="">
		<meta name="viewport" content="width=device-width">
	</head>
	<body>
		
		<button id="playButton">Play</button>

		<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
		<script>
		$(document).ready(function() {
			var $button = $("#playButton");
			var playing = false;
			var origTitle = document.title;
			
			$button.on("click", function() {
				if(!playing) {
					playing = true;	
					$button.text("Pause");
					document.title = '\u25B6 ' + origTitle;
				} else {
					playing = false;
					$button.text("Play");
					document.title = origTitle;
				}
			});
			
		});
		</script>
	</body>
</html>

The example above consists of one DOM item - a button. On the page load event, I grab a jQuery-wrapped pointer to it and a copy of the current page title. Then all I need to do is listen for click events to handle playing (or pausing) the audio. To be clear, I didn't bother adding real audio here. To add the play indicator, you simply use the Unicode character for it and prepend it to the title. In case you're curious, I Googled for "unicode for play symbol" to find the right one.

If you are incredibly bored and want to see this in action, hit the demo link below.

6 Comments

  • Scott Pinkston #
    Commented on 02-04-2014 at 9:49 AM
    hum, guess you could use the same thing to add a different character such as an exclamation mark or warning icon. Thinking of a session about to time out. You could animate it by adding/removing the icon.
  • Commented on 02-04-2014 at 9:54 AM
    Scott, dude! Haven't heard from you in forever. :)

    But yeah - and actually - I think the session timeout warning indictor is fascinating - that is a great use case.
  • Will Swain #
    Commented on 02-04-2014 at 9:58 AM
    Could you use font awesome icons up there I wonder? I'll give it a try and see. Can see some nice uses for this.
  • Will Swain #
    Commented on 02-04-2014 at 10:04 AM
    Nope of course you can't Will....you can't add HTML to the document title....

    Doh.
  • Commented on 02-05-2014 at 10:20 AM
    Very nice! Sadly Firefox messes around with the play character and outputs something that looks like a distorted flag. Great concept, though.
  • Commented on 02-05-2014 at 10:29 AM
    Latest Firefox? I didn't see that. Screen shot?

Post Reply

Please refrain from posting large blocks of code as a comment. Use Pastebin or Gists instead. Text wrapped in asterisks (*) will be bold and text wrapped in underscores (_) will be italicized.

Leave this field empty