2011-10-21 42 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