10

我刚开始玩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 通知 http://img33.imageshack.us/img33/7113/jetpack.png

我想在显示通知的文本时将它们拆分为四个不同的行,以便通知框更高更窄。我该怎么做呢?

编辑 1(感谢Rudd Zwolinski):

我试过了,但这无济于事:

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

编辑 2(感谢Ólafur Waage):

这也无济于事:

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

编辑 3(感谢马特):

即使这样也无济于事:

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

3 回答 3

9

不幸的是,创建的警报不允许在 Windows 中弹出 toast 的新行。根据 Jetpack API:

最终,这个对象将成为与您的用户轻松沟通的终极目标。通知栏、透明消息、咆哮、门把手消息等等都会经过这里。目前,它只有简单的通知。

源代码所示,该jetpack.notifications.show方法调用了 Mozilla nsIAlertsService,它不允许 Windows toast 弹出窗口使用多行。

好处是该 API 表明您将来可以更好地控制警报,但对于预发布版本,您必须将通知文本保持在最低限度。

于 2009-05-22T17:21:46.967 回答
1

我无法对此进行测试,因为我在 Mac 上并从中获取 Growl 通知jetpack.notifications.show,并且 Growl 会限制宽度,但请尝试更改myBody为:

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

换行符确实出现在我身上,所以这可能就是你要找的。

编辑:这不适用于 Windows toast 通知,因此它不能回答问题。但是,它将在 Mac OS X 的 Growl 通知中显示换行符,因此我将保留此答案。

于 2009-05-22T15:42:17.823 回答
0

IIRC 正确,jetpack 使用 JavaScript 和 HTML,所以只需尝试在行<br />之间添加。

于 2009-05-22T15:47:25.610 回答