检查页面是否使用 JavaScript 中的 asp.net ajax
Check if page uses asp.net ajax from JavaScript
有没有办法从JavaScript确定页面是否包含脚本管理器,更新面板,或者__doPostBack
是从更新面板调用还是部分回发?
当调用一个更新面板时,有两个函数从javascript端触发。在此函数中,您还可以获取触发此更新的面板的 ID。如果在更新面板之外有完整的回发,则需要捕获表单的提交。
下面是更新面板要更新时触发的代码,以及显示触发更新面板 ID 的函数。
<script>
if(window.Sys && Sys.WebForms && Sys.WebForms.PageRequestManager)
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
}
else
{
// no ScriptManager found
}
function InitializeRequest(sender, args)
{
// get the array of update panels id
var UpdPanelsIds = args.get_updatePanelsToUpdate();
// get the Post ID
args.get_postBackElement().id;
}
function EndRequest(sender, args) {
}
</script>
"Dan Davies Brackett"正确描述如何知道脚本管理器是否存在。
如果我理解正确,这里有两个问题:
(1) 如何在 JavaScript 中判断页面上是否存在脚本管理器?
如果服务器端页面包含脚本管理器,则客户端上将有一个可用的 PageRequestManager。 您可以通过以下方式发现它是否存在:
var haveScriptManager = window.Sys && Sys.WebForms && Sys.WebForms.PageRequestManager;
(2) 如何判断__doPostBack是否同步?
获得本地 PageRequestManager 的句柄后,可以挂接在每次回发之前触发的事件,并检查它是同步的还是异步的。 同样,PageRequestManager的文档将为您提供有关如何执行此操作的所有详细信息。
将 scriptManager clientID 发送到某个客户端 javascript,然后在页面上查找它(document.getElementById(emittedClientID)
您可以使用...__NewDoPostBack = __doPostBack重命名__doPostBack,然后创建一个新函数,例如...
__doPostBack = function(whatever arguments __NewDoPostBack takes){
alert("We're doing a post back");
__NewDoPostBack(whatever arguments __NewDoPostBack takes)
}
相关文章:
- javascript中的ASP if语句和while循环
- 通过javascript访问中继器中的asp元素
- 使用JSON的javascript中的ASP.NET按钮单击事件
- 需要在加载时访问 java 脚本中的 asp.net 服务器控件
- 检查页面是否使用 JavaScript 中的 asp.net ajax
- 无法单击 jquery 对话框中的 asp.net 按钮
- 在 UpdatePanel 中的 ASP 文本框上自动回发不起作用
- JQuery中的ASP.NET单选按钮开关
- ColorBox中的ASP.NET组件在回发后关闭
- 文本框中的Asp.Net日期选取器控件
- 在javascript更新后,从web用户控件获取codebehind中的asp:TextBox文本属性
- 禁用隐藏面板中的asp验证控件
- 如何在javascript中清除OnUnload事件中的asp.net会话值
- Ajax中的ASP页面表单操作
- 控制器中的ASP.NET MVC数组到客户端数组
- 从IE中的ASP.net树节点调用Jquery
- 如何访问javascript中的asp.net代码隐藏会话对象成员变量
- 用户控件中的asp.net内联标签
- 对话框中的Asp.NET下拉列表
- vb.net中的Asp标签不捕获在javascript中修改的标签文本