在用户通过ASP.NET菜单导航离开之前,我需要添加一些验证。
我注意到这些项被呈现为使用名为Menu_Key的javascript函数
<td id="ctl00_MainMenun1" onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)">我有一种方法可以重写该函数,并让菜单执行我的一个菜单,从中我可以验证我需要的内容,然后调用原始函数?
发布于 2009-06-01 14:21:54
在最初定义函数后重新定义它,但在var中跟踪它,以便以后可以调用它。您将有效地重命名原始的Menu_Key函数。
var originalMenu_Key = Menu_Key;
Menu_Key = function(t) {
// do your validations here
if ( /* everything validated */ ) {
originalMenu_Key (t);
}
};发布于 2009-06-01 16:03:57
上面的解决方案是有效的,但在一般情况下,可以以更灵活的方式进行重新定义
var originalMenu_Key = Menu_Key;
Menu_Key = function(t) {
// do your validations here
if ( /* everything validated */ ) {
return originalMenu_Key.apply(this,argumets);
}
};在这种情况下,函数签名中的任何更改都不会破坏包装逻辑。
发布于 2009-06-01 14:19:21
只需在页面底部重新定义函数(从技术上讲,在初始声明之后)。
https://stackoverflow.com/questions/935013
复制相似问题