2009-05-22 12 views
7

Ho appena iniziato a giocare con Mozilla Jetpack, e adoro fin'ora. Ho scritto un po 'di codice che visualizza un'icona nella barra di stato che, se cliccato, porta in primo piano una notifica:Visualizzazione notifiche multiline

var myTitle = 'Hello World!'; 
var line1 = 'I am the very model of a modern Major-General,'; 
var line2 = 'I\'ve information vegetable, animal, and mineral,'; 
var line3 = 'I know the kings of England, and I quote the fights historical,'; 
var line4 = 'From Marathon to Waterloo, in order categorical.'; 
var myBody = line1 + ' ' + line2 + ' ' + line3 + ' ' + line4; 
var myIcon = 'http://www.stackoverflow.com/favicon.ico'; 

jetpack.statusBar.append({ 
    html: '<img src="' + myIcon + '">', 
    width: 16, 
    onReady: function(doc) { 
    $(doc).find("img").click(function() { 
     jetpack.notifications.show({title: myTitle, body: myBody, icon: myIcon}); 
    }); 
    } 
}); 

Poiché il testo è molto lungo, in questo esempio, la notifica si presenta così:

Jetpack Notification http://img33.imageshack.us/img33/7113/jetpack.png

Desidero dividere il testo della notifica su quattro righe diverse quando vengono visualizzate in modo che la casella di notifica sia più alta e più stretta. Come procedo a fare questo?

Edit 1 (Grazie a Rudd Zwolinski):

ho provato, ma questo non aiuta:

var myBody = line1 + '\n' + line2 + '\n' + line3 + '\n' + line4; 

Edit 2 (Grazie a Ólafur Waage):

Questo fa non aiutare neanche:

var myBody = line1 + '<br />' + line2 + '<br />' + line3 + '<br />' + line4; 

Edit 3 (Grazie a Matt):

Anche questo non aiuta:

var myBody = line1 + "\n" + line2 + "\n" + line3 + "\n" + line4; 
+0

funziona "\ n" se lo aggiungi alle linee? – scunliffe

+0

@scunliffe, No, l'aggiunta di '\ n' non aiuta. – eleven81

+0

Ha detto "\ n", non "\ n". C'è una sottile differenza. – Matt

risposta

8

Sfortunatamente, l'avviso creato non consente nuove righe per il popup popup in Windows. Secondo l'API Jetpack:

Alla fine, questo oggetto sarà il fine-tutto-essere tutti una facile comunicazione con gli utenti. Le barre di notifica, i messaggi trasparenti , i ringhini, i pomelli e così via andranno tutti da qui. Per ora, ha solo le notifiche semplici .

Come mostrato nella the source code, il metodo jetpack.notifications.show fa una chiamata al Mozilla nsIAlertsService, che non consente più linee per il popup brindisi di Windows.

Il lato positivo è che l'API indica che in futuro avrete un maggiore controllo sugli avvisi, ma per la versione preliminare sarà necessario ridurre al minimo il testo delle notifiche.

1

non riesco a provare questo perché sono su un Mac e ottenere notifiche Growl da jetpack.notifications.show, e Growl vincola la larghezza, ma provare a cambiare myBody a questo:

var myBody = line1 + '\n' + line2 + '\n' + line3 + '\n' + line4; 

le interruzioni di riga mostrano per me, quindi questo mi essere quello che stai cercando.

EDIT: questo non funziona per le notifiche di Windows toast, quindi non risponde alla domanda. Tuttavia, mostrerà le nuove linee nelle notifiche Growl per Mac OS X, quindi sto lasciando questa risposta.

+0

Grazie, ma questo non funziona per me su Firefox 3.5b4 su WinXP. – eleven81

+1

ha eseguito il test con il carattere \ n, con il carattere \ r e con il tag
, ma nulla sembra funzionare. Presumo che non sia possibile forzare i newline nelle notifiche – Rafael

+0

Hai provato \ n \ r? –

0

IIRC correttamente, jetpack utilizza JavaScript e HTML, quindi prova ad aggiungere <br /> tra le linee.

+0

Grazie, ma questo non aiuta. I tag
vengono visualizzati come se fossero parte del testo della notifica. – eleven81