【问题标题】:Displaying multiline notifications显示多行通知
【发布时间】:2009-05-22 15:28:20
【问题描述】:

我刚开始玩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;

【问题讨论】:

  • 如果将“\n”添加到行中,它会起作用吗?
  • @spanliffe,不,添加 '\n' 没有帮助。
  • 他说的是“\n”,而不是“\n”。有细微的差别。
  • @Matt:你错了。单引号和双引号在 ecmascript 中可以互换,并且在功能上没有区别。

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


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    换行符确实会显示给我,所以这可能就是您要查找的内容。

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

    【讨论】:

    • 谢谢,但这对我在 WinXP 上的 Firefox 3.5b4 上不起作用。
    • 用 \n 字符、\r 字符和
      标签进行了测试,但似乎没有任何效果。我认为不可能在通知中强制换行
    • @Rich Bradshaw:是的,我确实尝试过 \n\r 和 \r\n,但没有任何效果。
    【解决方案3】:

    IIRC 正确,jetpack 使用 JavaScript 和 HTML,所以只需尝试在两行之间添加 &lt;br /&gt;

    【讨论】:

    • 谢谢,但这无济于事。
      标签只是显示为好像它们是通知文本的一部分。
    猜你喜欢
    • 2017-01-18
    • 1970-01-01
    • 2012-06-04
    • 2018-01-21
    • 1970-01-01
    • 2023-03-17
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多