【问题标题】:Multiple Javascript alerts not displaying in Windows Store AppWindows Store 应用程序中未显示多个 Javascript 警报
【发布时间】:2015-04-17 04:45:59
【问题描述】:

多个警报在 Windows 商店应用程序中不起作用。如果您放置多个警报,则只会显示最后一个警报。是否有任何解决方法。就像下面的例子一样,只显示 c。

function displayAlerts(){
 alert("a");
 alert("b");
 alert("c");
}

【问题讨论】:

  • 在每个有多个警报的情况下它都不起作用。
  • 你为什么要使用警报?你永远不应该使用警报。您是否尝试将其用于调试目的?还是用于实际的 UI?
  • 它是一个混合应用程序,警报放置在 javascript 层中。只有在 Windows 8 中不会出现多个警报。在 windows phone 8 中未观察到此问题。
  • 不过,这并没有真正回答问题。如果您使用它们进行调试,您可以使用 console.log 将调试信息输出到 JS 控制台,或者使用“debugger”语句作为断点或断言。如果您将警报用作实际 UI,则应该停止它。由于许多原因,它们存在问题,并且不鼓励在所有平台上使用它们(在某些平台上,如 WWAHost,明确禁用/弃用)。有许多库(如 jQueryUI、Bootstrap 等)支持表现更好的 HTML 模式对话框,您可以自定义 UI 以匹配您的站点/应用程序。

标签: javascript windows-runtime windows-store-apps windows-phone-8.1 winjs


【解决方案1】:

警报功能在 HTML Windows 应用程序中本机不可用

你必须使用这样的东西:

var msgBox = new Windows.UI.Popups.MessageDialog(message);
msgBox.showAsync();

如果你想显示多条消息,你必须这样做

   var msgBox = new Windows.UI.Popups.MessageDialog("1");
    msgBox.showAsync().then(function () {;
        msgBox = new Windows.UI.Popups.MessageDialog("2");
        msgBox.showAsync().then(function () {
            msgBox = new Windows.UI.Popups.MessageDialog("3");
            msgBox.showAsync();
        })
    });

因为只能同时显示一条消息,所以您必须等待用户确认每条消息才能显示下一条。

【讨论】:

  • 我不能使用本地方法。这是一个混合应用程序,它必须是 javascript 警报。
  • 你别无选择。您可以创建一个抽象层以提供相同的方法来针对不同的平台。在这个可怕的 liberarie github.com/gleborgne/winjscontrib ( :) ) 中,我们提供了大量的控件/转换器/绑定系统和多个抽象层,以针对 Windows 8 上的 Native 应用程序以及带有 Cordova 的 Android 和 iOS 应用程序。在命名空间 WinJSContrib.Alerts 中,我们有一个名为 message 的方法来提供此功能。 API 文档仍在构建中,但可用 (gleborgne.github.io/winjscontrib/api/index.html)
猜你喜欢
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 2018-06-26
  • 1970-01-01
相关资源
最近更新 更多