Отображение многострочных уведомлений - PullRequest
8 голосов
/ 22 мая 2009

Я только начал играть с Mozilla Jetpack , и мне это до сих пор нравится. Я написал небольшой код, который отображает значок в строке состояния, который при нажатии вызывает уведомление:

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

Поскольку в этом примере текст очень длинный, уведомление выглядит так:

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

Я хочу разбить текст уведомления на четыре разные строки, когда они отображаются, чтобы окно уведомлений было выше и уже. Как мне это сделать?

Редактировать 1 (Спасибо Радд Зволински ):

Я пытался, но это не помогает:

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

Редактировать 2 (Спасибо Олафур Вааге ):

Это тоже не помогает:

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

Редактировать 3 (Спасибо Мэтт ):

Даже это не помогает:

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

Ответы [ 3 ]

8 голосов
/ 22 мая 2009

К сожалению, созданное предупреждение не позволяет добавлять новые строки для всплывающего окна в Windows. Согласно API Jetpack:

В конце концов, этот объект будет конец-все-из-за легкого общения с вашими пользователями. Панель уведомлений, прозрачные сообщения, рычания, дверная ручка сообщения и так далее все пойдут через здесь. На данный момент, это просто простые уведомления.

Как показано в исходном коде , метод jetpack.notifications.show вызывает Mozilla nsIAlertsService, который не позволяет использовать несколько строк для всплывающих окон Windows.

Положительным моментом является то, что API указывает на то, что в будущем у вас будет гораздо больше контроля над оповещениями, но для предварительной версии вам придется сократить текст уведомления до минимума.

1 голос
/ 22 мая 2009

Я не могу проверить это, потому что я на Mac и получаю уведомления Growl от jetpack.notifications.show, и Growl ограничивает ширину, но попробуйте изменить myBody на это:

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

Разрывы строк отображаются для меня, так что это может быть то, что вы ищете.

РЕДАКТИРОВАТЬ : Это не работает для всплывающих уведомлений Windows, поэтому не отвечает на вопрос. Однако будет отображать новые строки в уведомлениях Growl для Mac OS X , поэтому я оставляю этот ответ.

0 голосов
/ 22 мая 2009

IIRC правильно, jetpack использует JavaScript и HTML, поэтому попробуйте добавить <br /> между строк.

...