mrt*_*man 9 javascript overriding anonymous function
如果匿名声明了javascript函数,有没有办法覆盖它或它的一部分?
我试图阻止google.com的即时搜索从劫持上下箭头键移动搜索排名.我已经确定了我认为有问题的代码部分.键码38和40用于向下和向上键.
if (b == 40) aa(f);
else if (b == 38) aa(j);
else if (b == 37 || b == 39) if (!ca(b == 39)) return f;
a.preventDefault && a.preventDefault();
return a.returnValue = j
Run Code Online (Sandbox Code Playgroud)
问题是这是一个名为Sb = function(a){}的函数的一部分,它位于大约三千行的匿名函数中.在这里发布了一个类似的问题,作者最终以一种不适合我的黑客方式进行工作.我意识到我可以关闭即时搜索,但我喜欢它,我无法忍受我的箭头键不再工作.
解:
我最终编写了一个chrome扩展来恢复向上/向下箭头键功能以滚动.我使用了以下代码.谢谢Raze和Mofle.
if (event.keyCode == 40 || event.keyCode == 38) {
event.cancelBubble = true;
event.stopPropagation();
return false;
}
Run Code Online (Sandbox Code Playgroud)
您不能在另一个匿名函数中覆盖另一个匿名函数。您无法更改任何现有函数的部分,您必须创建一个新函数并将其附加到需要的位置,尽管您可以获取函数的源代码,对其进行操作并从源代码中创建一个新函数。
我在这里对这个问题有两个建议,其中不涉及重新定义函数。