2009-05-22 12 views
7

Acabo de empezar a jugar con Mozilla Jetpack, y me encanta hasta ahora. Escribí un pequeño código que muestra un icono en la barra de estado que, al hacer clic, aparece una notificación:Mostrando notificaciones multilínea

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}); 
    }); 
    } 
}); 

Debido a que el texto es muy largo en este ejemplo, la notificación es el siguiente:

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

Quiero dividir el texto de la notificación en cuatro líneas diferentes cuando se muestran para que el cuadro de notificación sea más alto y más estrecho. ¿Cómo voy a hacer esto?

Edición 1 (Gracias a Rudd Zwolinski):

he intentado, pero esto no ayuda:

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

Editar 2 (Gracias a Ólafur Waage):

Esto hace tampoco ayuda:

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

Datos 3 (Gracias a Matt):

Incluso esto no ayuda:

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

¿funciona "\ n" si lo agrega a las líneas? – scunliffe

+0

@scunliffe, No, agregar '\ n' no ayuda. – eleven81

+0

Dijo "\ n", no '\ n'. Hay una sutil diferencia. – Matt

Respuesta

8

Desafortunadamente, la alerta creada no permite nuevas líneas para la ventana emergente de pan tostado en Windows. De acuerdo con la API de Jetpack:

Con el tiempo, este objeto será el fin de todo ser-todo de una fácil comunicación con sus usuarios. Barras de notificación, mensajes transparentes , mensajes Growls, doorknob , y así sucesivamente irán a aquí. Por ahora, solo tiene notificaciones simples.

Como se muestra en the source code, el método jetpack.notifications.show hace una llamada a la Mozilla nsIAlertsService, que no permite que varias líneas para las ventanas emergentes de Windows tostadas.

Lo positivo es que la API indica que tendrá mucho más control sobre las alertas en el futuro, pero para la versión preliminar tendrá que mantener el texto de notificación al mínimo.

1

no puedo probar esto porque estoy en un Mac y recibir notificaciones de Growl de jetpack.notifications.show, Growl y limita el ancho, pero trate de cambiar a este myBody:

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

los saltos de línea no se presentan a mí, por lo que este mi ght sea lo que estás buscando.

EDIT: Esto no funciona para las notificaciones de tostadas de Windows, por lo que no responde la pregunta. Sin embargo, mostrará líneas nuevas en las notificaciones de Growl para Mac OS X, así que dejo esta respuesta.

+0

Gracias, pero esto no funciona para mí en Firefox 3.5b4 en WinXP. – eleven81

+1

hizo la prueba con el carácter \ n, con el carácter \ r y con la etiqueta
, pero nada parece funcionar. Supongo que no es posible forzar nuevas líneas en las notificaciones – Rafael

+0

¿Intentó \ n \ r? –

0

IIRC correctamente, jetpack usa JavaScript y HTML, así que intente agregar <br /> entre las líneas.

+0

Gracias, pero esto no ayuda. Las etiquetas
solo aparecen como si fueran parte del texto de notificación. – eleven81