2015-04-02 31 views
1

我试图实现通知功能,它将更改浏览器选项卡文本的通知数量。我在互联网上搜索,发现我应该改变标题,这也将改变浏览器标签文本。但它似乎并不奏效。这里是我的尝试:如何在JSFiddle中更改浏览器选项卡显示的文本

var nbNotifications = 0; 

$().ready(function() { 
    var docOriginalTitle = "Tab does not change on notification"; 
    debugger; 
    document.title = docOriginalTitle; 
    $('#test').click(function() { 
     nbNotifications += 1; 
     document.title = "(" + nbNotifications + ") " + docOriginalTitle; 
     alert(document.title); 
    }); 
}); 

JSFiddle can be found here

也许,这是不正确的文档标题改变浏览器分页标题?或者它可能不适用于JSFiddle?

你能否让我走上正轨?

编辑

我试图改变的jsfiddle浏览器标签文本。有没有办法欺骗JSFiddle并呈现此行为?

+4

问题的jsfiddle父文件是不是在同一个域*结果*的iframe AFAIK这个意愿。不可能,除非jsfiddle通过api提供这些功能。在其他消息中,试图关闭你的小提琴窃听我的镀铬物。http://i.imgur.com/lIqyPo9.gif – rlemon 2015-04-02 16:52:53

+0

糟糕,对不起。 – TheWanderingMind 2015-04-02 16:54:47

回答

1

我认为这种技术工作得很好。我认为问题在于,jsFiddle在iframe中运行你的页面,它不控制浏览器标签标题。

如果我在浏览器控制台中输入document.title = 'Here's my new Title';,则浏览器选项卡中的文本确实会更新

您还如何测试它?

+0

其实,我的目标是改变JSFiddle中的浏览器标签文本有没有办法做到这一点? – TheWanderingMind 2015-04-02 16:41:14

+1

问题是你不写这个页面,jsFiddle的人会这样做,你必须以某种方式将JavaScript注入到主页面。我怀疑安全措施会阻止这种情况,除非只是暂时编辑它ily在你的浏览器的控制台。 – 2015-04-02 16:43:21

+0

我明白了..感谢您的明确解释!我想我只会添加一个声音通知。 – TheWanderingMind 2015-04-02 16:47:54

1

document.title是要走的路,但它不会在jsFiddle中工作。它应该在“真实”页面中正常工作。

尝试在您的浏览器中输入javascript:alert(document.title = "My new title"); - 您应该看到标签文本更新。

编辑

我不认为,除非他们允许它在某种程度上可以做到这一点的的jsfiddle。如果试图“逃离”你的窗口,并在他们的更改属性(即parent.document.title = "xxx";你会得到一个安全异常:

Uncaught SecurityError: Blocked a frame with origin " http://fiddle.jshell.net " from accessing a frame with origin " http://jsfiddle.net ". Protocols, domains, and ports must match.

+0

对不起,我忘记提及我的问题中最重要的部分。我的目标是更改JSFiddle中的浏览器选项卡文本,因为我的应用程序实际上是JSFiddle应用程序。 – TheWanderingMind 2015-04-02 16:44:58

+0

感谢您的额外信息。 – TheWanderingMind 2015-04-02 17:21:54

相关问题