Search code examples
javascriptgoogle-chromewebkitnotificationsgmail

How to get focus to a Chrome tab which created desktop notification?


I would like to implement same functionality as Gmail has nowadays. When new email arrives or new chat comes, notification popup appears and if you click it, the tab with Gmail gets focussed.

I have this code:

var n = window.webkitNotifications.createNotification('ico.gif', 'Title', 'Text');
n.onclick = function(x) { this.cancel(); };
n.show();

When I click notification it makes it just disappear. Now I need to add some code to onclick function to bring up and focus page that created this notification. I know it is possible because GMail does it very well. But I didn't succeed in looking into Gmail sources (they are minimalized and obfuscated).

Anybody knows how to do this ?


Solution

  • You can just place window.focus() in Google Chrome. It will focus to that window when clicked.

    var n = window.webkitNotifications.createNotification('ico.gif', 'Title', 'Text');
    n.onclick = function(x) { window.focus(); this.close(); };
    n.show();
    

    I opened the inspector in Gmail, added the above code, moved to a different tab, and ran it. The notification appeared and once clicked, it brought me back to Gmail.