2010-12-06 62 views
19

出於安全原因,我的網站在閒置5分鐘後自動將用戶簽出。我通過jQuery超時來實現這一點,當用戶做我認爲是「活動」的任何時候都會重置它。爲了確保安全性,cookie的超時時間也設置爲5分鐘,並且我的jquery執行一次心跳回到服務器以確保cookie不會過期。使瀏覽器選項卡閃爍通知

目前,大約4分鐘不活動時,會彈出一個jquery ui對話框,向用戶發出即將超時的警告。用戶可以選擇保持登錄狀態,立即退出,或者什麼也不做,並且他們被迫在5分鐘結束時退出。

我的問題是,我想讓選項卡閃爍/閃爍不同的背景顏色,以警告用戶,他們沒有注意時發生了什麼。我只是不確定如何去做這件事。

+0

我不認爲一個網頁可以通過這種方式與瀏覽器的GUI進行交互,但我有興趣看看我是否有錯。 – 2010-12-06 21:19:21

+0

我見過網站做了一些事情,導致(在IE中)標籤改變顏色。我只是不確定他們是如何實現它的,現在所有的例子都在逃避我。 – Josh 2010-12-06 21:20:20

+2

僅僅因爲它可能在IE中並不意味着它應該被允許。一個閃爍的消息,如果這個人在電腦上,應該足以吸引注意力(它肯定適用於Facebook聊天提醒)。 – 2010-12-06 21:24:51

回答

22

您可以更改頁面的標題(這也應該改變文本在標籤中)。

document.title = 'New title'; 

另外,你可以在一個setInterval做來回的頁面標題之間,信息您正試圖向用戶顯示。我在gmail上看到了這種行爲與傳入聊天通信。

1

您可以更改頁面標題和將在瀏覽器選項卡顯示的,但你不能改變背景顏色或使其閃爍

11

無法更改瀏覽器選項卡的背景,至少在所有選項中不一致。

正如Josiah所述,setInterval可用於創建閃爍的頁面標題。

這個JavaScript利用它:

var PageTitleNotification = { 
    Vars:{ 
     OriginalTitle: document.title, 
     Interval: null 
    },  
    On: function(notification, intervalSpeed){ 
     var _this = this; 
     _this.Vars.Interval = setInterval(function(){ 
      document.title = (_this.Vars.OriginalTitle == document.title) 
           ? notification 
           : _this.Vars.OriginalTitle; 
     }, (intervalSpeed) ? intervalSpeed : 1000); 
    }, 
    Off: function(){ 
     clearInterval(this.Vars.Interval); 
     document.title = this.Vars.OriginalTitle; 
    } 
} 

這可以用於像:

PageTitleNotification.On("User logged out!"); 

看我下面的博客文章的詳細信息:

http://curtistimson.co.uk/js/create-a-flashing-tab-notification-page-title/

0

你還可以加一個提醒窗口。當用戶在另一個選項卡中時,瀏覽器具有閃爍標籤(具有警報)的內置功能。所以,改變文件標題和警報將符合你的目的。注意:在顯示警報之前,您需要先檢查選項卡是否處於活動狀態。