2011-10-21 105 views
7

我正在研究基于浏览器的应用程序,当用户收到传入事件时需要能够获得用户的注意,例如消息,即使用户已经最小化浏览器。当浏览器被最小化(跨浏览器桌面通知?)时,获得用户的注意力

搜索给了我一些很好的结果,但没有任何跨浏览器或Firefox特定的。我需要能够支持IE 7+和FF 3.6+(特定于用户群)。

这里是我看过的东西:

到目前为止,我们用一个简单的JavaScript警告让托盘图标闪烁,但尝试响应通知时创建了额外的点击(现在总共有3次点击,或33%的降级)。用户预计会每天做20-50次,所以很快就会变得非常烦人。

基础上提供微软开发商网络上的例子,我做了这个简单的原型,对于IE效果不错,但它是IE特有的,并且不会在其他浏览器:

<HTML> 
<HEAD> 
<TITLE>Popup Example</TITLE> 
<SCRIPT LANGUAGE="JScript"> 
function timeMsg() 
{ 
    var t=setTimeout("ButtonClick()",5000); 
} 

var oPopup = window.createPopup(); 

function ButtonClick() 
{ 
    var oPopBody = oPopup.document.body; 
    var myHeight = (window.screen.availHeight - 125); 
    var myWidth = (window.screen.availWidth - 350); 

    oPopBody.style.backgroundColor = "red"; 
    oPopBody.style.border = "solid black 1px"; 
    oPopBody.innerHTML = "Click outside <B>popup</B> to close."; 
    oPopup.show(myWidth, myHeight, 300, 75); 
} 
</SCRIPT> 
</HEAD> 
<BODY> 
<BUTTON onclick="timeMsg()">Display alert in 5 seconds</BUTTON> 
</BODY> 
</HTML> 

如何任何建议不用使用本地安装的可执行文件就可以让这个体验变得更好。

+2

人们讨厌的弹出窗口,因为它们污染了整个网络在一个点上。所有主流浏览器都采用自动消除它们的方式。大多数反病毒软件也有插件来消除弹出窗口。所以,做到这一点的唯一方法本质上不是网络般的。 – evan

+0

谢谢你,埃文。我绝对从用户的角度分享同样的观点。由于我正在使用的应用程序是B2B,所以在口述设置时我们有更多的灵活性。所以,如果有任何建议可以触发弹出窗口阻止程序或其他内置的浏览器安全功能,可以由用户关闭,这是可以接受的。 – Sologoub

回答

0

我们最终选择了Google Chrome Desktop Notifications,并要求我们的客户在IE中使用Chrome或Chrome Frame。通过播放声音作为警报来增强通知。

下面是关于它的文档:http://code.google.com/chrome/extensions/notifications.html

+2

谷歌计划在2014年1月之前杀死Chrome Frame。来源:http://google.com/chromeframe – Gili

-1

如果您可以指定用户将关闭弹出窗口拦截器,然后有一个“设置”页面。

该页面包含有关如何关闭弹出窗口拦截器以及您的网站及其所有浏览器的说明。最好用图像显示要做什么。大多数浏览器都会发出通知,通过将网站添加到“白名单”的方式来抑制弹出窗口。

然后当他们点击按钮或执行其他操作时,在该页面上启动一个弹出窗口。然后他们可以按照说明操作并关闭弹出抑制。

+0

如果浏览器最小化,这个工作是否可行?另外,用户似乎也需要确保弹出窗口不会以制表符的形式打开。有没有js代码来控制它? – Sologoub

+0

不,这是所有浏览器特定的,并且浏览器本身的一部分不是html/javascript呈现。对于这样的事情,更好的方法是创建一个实际的应用程序。我听说过有关跨平台通知的好消息,就像您正在讨论Adobe Air一样。我相信有人在Java应用程序中有答案。 – evan