2009-05-10 12 views
0

Ich möchte persönlich entwickelten JavaScript-Code ausführen, wenn ich eine Seite in Safari lade. Scheint wie addblock für Safari dies tut. Weiß jemand, wie man das macht?Wie entwickle ich ein Addon für Safari?

Safari ist nicht erweiterbar. Es gibt kein Addon-Framework dafür. Aber es gibt Adblock und viele andere Addons für sie, obwohl die Webkit- und Safari-Entwickler von Apple die Benutzer davon abhalten, sie zu benutzen und sie "Binär-Hacks" zu nennen. Scheint, obwohl einige dieser Addons den InputManager verwenden, der überhaupt nirgends dokumentiert ist, zumindest nicht dafür, wie Leute ihn zum Laden von Skripten in Safari verwenden. Ich denke, ich werde rückwärts arbeiten müssen, um zu sehen, wie Addblock das macht, aber bevor ich das tue, dachte ich, ich würde mich hier erkundigen. Weiß jemand?

Antwort

3

Input-Manager sind eine häufig verwendete Möglichkeit, beliebigen Code in die Laufzeit einer anderen Anwendung zu injizieren. Sobald Sie dort sind, müssen Sie genug von der Anwendung selbst zurückentwickeln, um herauszufinden, wie Sie das gewünschte Verhalten erhalten. In der Regel wird die Methode ausgetauscht, um Teile der Anwendung zu ersetzen, die Sie hacken. Es ist nicht dokumentiert, weil es keine zu dokumentierende API gibt, aber Sie können etwas über die einzelnen Teile lernen (wie man einen Eingabe-Manager im Allgemeinen schreibt, wie Methode in Objective C umschaltet, wie man Klassen-Dump verwendet) und dann alles einfügt zusammen.

Was Sie beschreiben, klingt wie Greasemonkey, und es gibt mindestens ein oder zwei Hacks, die bereits Greasemonkey-ähnliches Verhalten in Safari ermöglichen. Ich würde vorschlagen, zu sehen, ob einer von ihnen Ihre Bedürfnisse zuerst erfüllt.

+0

Jetzt möchte ich ein Safari-Plugin mit Simbl machen, und ich habe den Sessel Guide To Cocoa Reverse Engineering gelesen. aber wenn die Methode implementiert wird - (void) load; Wie benutze ich das Plugin um das Safari DOM Objekt zu bekommen, genau wie PIC oder Flash URL? Vielen Dank ! – jin

Verwandte Themen