2011-02-17 160 views
1

我想顯示的信息很少,以向用戶提供反饋,而他 正在提供輸入或僅與UI進行交互。如何創建消息隊列?

我需要它爲我的firefox插件,所以我必須在普通的javascript 而不是jQuery中開發它。

我希望顯示消息,但在同一個 時間內只能看到一條消息,所以我需要某種類型的隊列來管理消息傳遞。在某個時間 例如3秒鐘的信息應該消失或者消失。

現在我可以將消息添加到DOM。任何建議如何實現隊列 以及如何根據時間推送消息?

謝謝!

回答

1

您可以在Firefox插件使用jQuery:

包括在指向jQuery的文件XUL文件的腳本標籤,如:

<script type="text/javascript" src="chrome://extensionname/content/jquery.js" /> 

在每一個js的使用jQuery的,插入功能這條線:

$jQuizzle = jQuery.noConflict(); 

在每一個jQuery的電話,如果你試圖操縱在當前瀏覽器窗口中的文件,你必須提供上下文「window.content.document」,LIK E本:

$jQuizzle(".myClass", window.content.document).show(); 

然後你就可以使用這個jQuery插件: http://benalman.com/projects/jquery-message-queuing-plugin/

+0

嗯這不適合我,我試圖用$ jQuizzle(「#smsflatrateSidebar」,window.content.document).hide()隱藏整個內容。但沒有任何反應 – 2011-02-17 12:21:28

+0

$ jQuizzle = jQuery.noConflict();似乎失敗 – 2011-02-17 12:30:01

4

Perheps你需要FIFO(先進先出)

的概念,在這個簡單的例子來看看在計劃Java腳本語言:

function Queue() { 
    var data = []; 

    this.isEmpty = function() { 
     return (data.length == 0); 
    }; 

    this.enqueue = function(obj) { 
     data.push(obj); 
    }; 

    this.dequeue = function() { 
     return data.shift(); 
    }; 

    this.peek = function() { 
     return data[0]; 
    }; 

    this.clear = function() { 
     data = []; 
    }; 
} 
0

目前還不清楚你是什麼類型的消息想要顯示。 nsIAlertsService可以顯示消息,但我不確定它排隊如何。如果你想要簡單的東西,那麼也許你可以顯示一個自定義的<tooltip>元素。