有没有在回发时触发的JavaScript事件?
如果没有,我该如何在页面回发之后或之前立即运行客户端代码?
有没有在回发时触发的JavaScript事件?
如果没有,我该如何在页面回发之后或之前立即运行客户端代码?
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function (s, e) {
alert('Postback!');
});
</script>
还有很多选择,例如:
$('#id').live('change', function (){});
$(document).ready(function () {});
ClientScriptManager.RegisterStartupScript(this.GetType(), "AKey", "MyFunction();", true);
继续前进。取决于你的需求。
PageRequestManager事件:https://learn.microsoft.com/en-us/previous-versions/aspnet/bb398976(v=vs.100)
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
var elem = args.get_postBackElement();
ActivateAlertDiv('visible', 'AlertDiv', elem.value + ' processing...');
}
function EndRequestHandler(sender, args)
{
ActivateAlertDiv('hidden', 'AlertDiv', '');
}
function ActivateAlertDiv(visstring, elem, msg)
{
var adiv = $get(elem);
adiv.style.visibility = visstring;
adiv.innerHTML = msg;
}
</script>
Page.ClientScript.RegisterStartupScript(this.GetType(), "alert",
"alert('hello world');", true);
或者
Page.ClientScript.RegisterStartupScript(this.GetType(), "alertScript",
"function Hello() { alert('hello world'); }", true);
Page.ClientScript对象有一个RegisterOnSubmitStatement,它会在任何输入提交表单后触发。这可能是您正在寻找的,也可能不是,但我已经用它来通知用户可编辑表单中未保存的更改。
使用此方法的优点是,与RegisterStartupScript相比,如果用户使用浏览器导航离开并返回,使用RegisterStartupScript注入的任何脚本都可能再次触发,而RegisterOnSubmitStatement仅在用户提交表单时运行。
在页面回发后没有触发JavaScript事件,但是您可以将JavaScript添加到HTML模板(.aspx文件)中,仅在页面被提交时运行它,例如:
<script type='text/javascript'>
var isPostBack = '<%= this.IsPostBack%>' == 'True';
if (isPostBack) {
alert('It's a PostBack!');
}
</script>
var userClickedSubmit = '<%= this.UserClickedSubmit%>' == 'True';
if (userClickedSubmit) {
// Do something in javascript
}
(没有反对 ClientScript.RegisterStartupScript
,这是可以的 - 有时您想将 JavaScript 保留在页面模板中,有时您想将其保留在页面类中。)
onComplete
添加事件处理程序。