2017-04-10 163 views
0

我有一个如此模块化的应用程序,并且使用了很多getPreventDefault(),这需要我几天的时间才能将它更改为defaultPrevented的所有文件。getPreventDefault() - 是否可以覆盖,替换或类似的东西?

我在Windows 7中,所以某种递归脚本对该项目太不安全。

我试图让getPreventDefault()使用defaultPrevented,像:

function getPreventDefault(e) { 
     return defaultPrevented(e); 
} 

我尝试了很多其他的方式,但没有...

是否有可能做到这一点?我的想法是不加警告地继续使用getPreventDefault(),直到我完成修复一些问题,然后再修改它。

简单的代码来测试警告删除...

<!DOCTYPE html> 
<html> 
     <head> 
       <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> 

       <script> 
         function OnBodyClick (event) { 
           if (event.getPreventDefault) { // Firefox, Opera, Google Chrome and Safari 
             if (event.getPreventDefault()) { 
               console.log ("The default action is canceled."); 
             } else { 
               console.log ("The default action is not canceled."); 
             } 
           } 
         } 
       </script> 
     </head> 
     <body onclick="OnBodyClick(event)"> 
     </body> 
</html> 
+0

后? – mplungjan

+0

一旦它是一个Windows脚本而不是POSIX,它就不会安全,因为我只能访问页面的“我的部分”,这是一个多国家的web系统,我的老朋友大陆没有时间去修复这样的事情,所以我首先会去除这些战争(类似200或更多),之后我会帮助他们修复它。 – Sirius

+0

基于getPreventDefault函数,不应该使用'getPreventDefault(event)'而不是'event.getPreventDefault'吗? –

回答

1

你应该很好,使用JavaScript原型覆盖

Object.prototype.getPreventDefault = function (e) {  
    return e.defaultPrevented; 
} 

如果你想覆盖jQuery的功能,你可以你为什么不能做一个文件搜索和替换使用此代码您加载的jQuery

(function ($) {  
    $.fn.getPreventDefault = function(e) { 
     return e.defaultPrevented; 
    }; 
})(jQuery); 
+0

我试了两个和FF(可能是其他人)仍然显示警告消息,我发布了一个简单的代码更新显示警告。 – Sirius

+0

似乎FF总是显示警告消息,并且不允许覆盖getPreventDefault函数。 因此,我强烈建议您更新您的代码并更换每个getPreventDefault,这是很多工作..但现在这样做会更快,而不是搜索修补程序并在之后执行。问候 – tipura

0

defaultPrevented财产Event,所以你必须写你的函数是这样的:

function getPreventDefault(e) { 
    return e.defaultPrevented; 
} 
+0

我尝试过FF(可能是其他人)仍然显示警告消息,我发布了一个简单的代码更新显示警告。 – Sirius

相关问题