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
問題は、これが Sb = function (a) {} という関数の一部であり、約 3,000 行の無名関数の中にあることです。SO hereに投稿された同様の質問があり、著者は私には当てはまらないハッキーな方法で解決しました。インスタント検索をオフにできることはわかっていますが、気に入っています。矢印キーが機能しなくなったことに我慢できません。
解決:
上/下矢印キーの機能をスクロールに戻すクロム拡張機能を作成することになりました。次のコードを使用しました。Razeとモフルに感謝します。
if (event.keyCode == 40 || event.keyCode == 38) {
event.cancelBubble = true;
event.stopPropagation();
return false;
}