【问题标题】:How to find what ASP.NET AJAX event handlers are associated with a DOM element?如何找到与 DOM 元素相关联的 ASP.NET AJAX 事件处理程序?
【发布时间】:2012-06-09 00:38:01
【问题描述】:

我正在自定义无法将源代码修改为的现有 ASP.NET 3.5 AJAX Web 应用程序(它是 SharePoint 2010)。

我需要添加一个单击事件处理程序作为关闭按钮上的第一个事件。不过,我想先检查一下已经在此按钮上注册的现有事件处理程序会做什么,所以我不会搞砸任何事情。

我还在学习 ASP.NET AJAX,可以看到 Sys.UI.DomEvent class 有添加和删除事件处理程序的方法,但不能枚举它们。我了解 jQuery,并且熟悉 Chrome 中的 JavaScript 调试。

如何查看注册了哪些事件并在特定位置插入自定义事件处理程序

【问题讨论】:

  • 您是否可以在页面上的其他脚本下方注入您的 javascript,或者您是否被限制在 html 中的特定位置?

标签: javascript asp.net dom-events asp.net-ajax


【解决方案1】:

有一种技术至少可以让您成为排在第一位的人(除非另一个脚本采用相同的技巧 - 不太可能)。

你要做的就是劫持点击事件。这个相关问题演示了该技术:Hijacking onchange event without interfering with original function

我们所做的只是将click 函数重新定义为我们自己选择的函数之一,例如

var myButton = document.getElementById('button1')
var oldClick = myButton.click;

myButton.click = function(evt) {
  //do whatever you want.  When done, call the default click function:
  if (oldClick) oldClick(evt);
}

(链接问题中的语法更好,但上面的代码更容易阅读)。

【讨论】:

    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    相关资源
    最近更新 更多