Wenn eine JavaScript-Funktion anonym erklärt wird, gibt es eine Möglichkeit, sie oder Teile davon zu überschreiben?
Ich versuche, die sofortige Suche von google.com zu stoppen, indem ich die Auf- und Abwärtspfeile entschlüssele, um durch Ihre Suchrankings zu navigieren. Ich habe festgestellt, was ich für den problematischen Codeabschnitt halte. Die Tastencodes 38 und 40 sind für die Abwärts- und Aufwärts-Tasten.
%Vor%Das Problem ist, dass dies Teil einer Funktion namens Sb = function (a) {} ist, die innerhalb von etwa einer dreitausend Zeilen anonymen Funktion liegt. Es gibt eine ähnliche Frage auf SO hier , dass der Autor am Ende auf eine hacky Art gearbeitet hat, die nicht auf mich zutrifft. Ich weiß, dass ich die sofortige Suche abschalten kann, aber ich mag es, ich kann es einfach nicht ertragen, dass meine Pfeiltasten nicht mehr funktionieren.
LÖSUNG:
Am Ende habe ich eine Chrome-Erweiterung geschrieben, um die Pfeiltaste nach oben / unten zu scrollen. Ich habe den folgenden Code verwendet. Danke an Raze und Mofle.
%Vor%Sie können eine anonyme Funktion in einer anderen anonymen Funktion nicht überschreiben. Sie können keine Teile einer bestehenden Funktion ändern, Sie müssen eine neue Funktion erstellen und sie bei Bedarf anhängen, obwohl Sie die Quelle einer Funktion erhalten, sie manipulieren und eine neue Funktion aus der Quelle erstellen können. p>
Ich habe hier zwei Vorschläge für dieses Problem, die keine Neudefinition der Funktionen beinhalten.
Das können Sie leicht tun, indem Sie die Ereignisse der Pfeiltasten aufzeichnen und verhindern, dass sie sprudeln.
%Vor%Getestet und funktioniert auf google.com
Entfernen Sie alle Ereignis-Listener aus dem Element, indem Sie sie durch einen eigenen Klon ( node.parentNode.replaceChild(node.cloneNode(true), node)
) ersetzen und anschließend eine manuell geänderte Version des Google-JavaScript-Codes anwenden ( document.documentElement.appendChild(document.createElement("script")).src="
location of your modified script
"
).
Tags und Links javascript function override anonymous