我的页面上有一个javascript警告弹出窗口。我遇到的问题是,它不是等待用户实际点击确定按钮,而是简单地进行重定向,这是在点击确定按钮后应该做的事情。任何人都可以帮我调整我的代码,以使其工作,因为它应该取悦?
function f()
{
ar ape =radalert('<div align=""center"" style=""font-weight: bold;""> OPEN BOX HERE</div>', 123, 200);
if(ape)window.location.href = "/Default.aspx";
Sys.Application.remove_load(f);
}
Sys.Application.add_load(f);
答案 0 :(得分:4)
您可以使用add_close
方法附加回调函数,以了解警报何时关闭:
var win = radalert('foo');
win.add_close(function () {
alert('bar'); // This will be executed when the radalert is closed.
});
更多信息:
答案 1 :(得分:2)
你没有使用JavaScript alert
(在内置函数意义上),看起来你正在使用名为radalert
的东西(来自Telerik)。这意味着它不能表现得像一个JavaScript alert
,这会使脚本处理在屏幕上停止时暂停。
我对Telerik一无所知,但大多数这些警报替换提供了一个可以传递的回调,当警报被清除时会被触发。这就是您想要window.location.href = ...
代码的地方。
通常看起来像这样:
function blah() {
niftyAlertThingy("Here's my message", {
onOK: function() {
window.location.href = "/Default.aspx";
// etc.
}
});
}
blah
函数立即返回 ,警告仍在页面上;然后,当用户单击“确定”时,警报代码会调用您的回调。
我确信Telerik radalert
有类似的东西......
答案 2 :(得分:1)
我认为你的代码需要更多的解释,也可能需要你的代码(只需要关于你如何处理“OK”的相关代码点击)。我对telerik的经验并不好。我建议你尝试jQuery UI。它可以让您更好地控制如何处理事件以及在何处处理。
示例(来自here)
$(function(){
$("#dialog").dialog({
autoOpen: false,
modal:true,
buttons : {
"Yes" : function() {
$(this).dialog("close");
eval($("#<%= hdnBtnPostback.ClientID %>").val());
},
"No" : function() {
$(this).dialog("close");
},
"Maybe": function() {
$(this).dialog("close");
//what should we do when "Maybe" is clicked?
}
}
});
});