我正在使用下面的javascript为我的Windows 8应用程序显示一条弹出消息
var msg = new Windows.UI.Popups.MessageDialog("No internet connection has been found.");
msg.commands.append(new Windows.UI.Popups.UICommand("Try again", commandInvokedHandler));
msg.commands.append(new Windows.UI.Popups.UICommand("Close", commandInvokedHandler));
msg.defaultCommandIndex = 0;
msg.cancelCommandIndex = 1;
msg.showAsync();
现在我想在一段时间间隔之后以编程方式关闭弹出消息,因为用户没有给出任何输入。
答案 0 :(得分:3)
我认为没有针对那种消息弹出的hide / dismiss / cancel命令。按下键盘上的转义键时会调用cancel命令。这些消息不是用于信息目的。你应该使用“FlyOut”。
<强> HTML:强>
<!-- Define a flyout in HTML as you wish -->
<div id="informationFlyout" data-win-control="WinJS.UI.Flyout">
<p>
Some informative text
</p>
</div>
<!-- an anchor for the flyout, where it should be displayed -->
<div id="flyoutAnchor"></div>
JS:
// Get an anchor for the flyout
var flyoutAnchor = document.getElementById("flyoutAnchor");
// Show flyout at anchor
document.getElementById("informationFlyout").winControl.show(flyoutAnchor);
要在一段时间后解除弹出按钮,你可以只做一个setTimeout并隐藏你的代码:
// execute this code after 2000ms
setTimeout(function () {
// Fetch the flyout
var flyout = document.getElementById("informationFlyout"); // Get the flyout from HTML
// Check if the element still exists in DOM
if (flyout)
flyout.winControl.hide(); // Dismiss the flyout
}, 2000);
详细了解FlyOut-popups here
答案 1 :(得分:1)
有一个取消,你可以调用showAsync方法返回的对象,首先以这种方式调用messageDialog:
var msg = new Windows.UI.Popups.MessageDialog("No internet connection has been found.");
var asyncOperation = msg.showAsync();
然后随时可以致电:
asyncOperation.cancel();
并且messageDialog将被解雇。