如何将焦点放在创建桌面通知的 Chrome 选项卡上?

我想实现与现在的 Gmail 相同的功能.当新电子邮件到达或新聊天出现时,会出现通知弹出窗口,如果您单击它,Gmail 的标签就会成为焦点.

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.

我有这个代码:

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

当我单击通知时,它会消失.现在我需要向 onclick 函数添加一些代码,以调出并聚焦创建此通知的页面.我知道这是可能的,因为 GMail 做得很好.但我没有成功调查 Gmail 来源(它们被最小化和混淆了).

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).

有人知道怎么做吗?

推荐答案

你可以把 window.focus() 放到谷歌浏览器中.单击时它将聚焦到该窗口.

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();

我在 Gmail 中打开了检查器,添加了上面的代码,移动到另一个选项卡,然后运行它.通知出现了,点击后,我又回到了 Gmail.

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.

相关文章