显示多行通知

时间:2009-05-22 15:28:21

标签: javascript jquery firefox-addon firefox-addon-sdk

我刚刚开始玩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(感谢Rudd Zwolinski):

我试过,但这没有帮助:

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

编辑2(感谢Ólafur Waage):

这也无济于事:

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

修改3(感谢Matt):

即使这样也无济于事:

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

3 个答案:

答案 0 :(得分:8)

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

  

最终,这个对象将成为   最终 - 所有这些都是轻松沟通的结果   与您的用户。通知栏,   透明的消息,Growls,门把手   消息等等都会消失   通过这里。 目前,它只是   简单的通知。

the source code所示,jetpack.notifications.show方法调用了Mozilla nsIAlertsService,它不允许多行用于Windows Toast弹出窗口。

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

答案 1 :(得分:1)

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

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

换行确实出现在我面前,所以这可能就是你要找的东西。

编辑:这不适用于Windows Toast通知,因此它不回答问题。但是,它会在Mac OS X的Growl通知中显示换行符,所以我将离开此答案。

答案 2 :(得分:0)

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