2009-07-06 4 views
2

Das Problem ist, dass ich ein Safari Plug-in (Growler) geschrieben habe, das es Webanwendungen erlaubt, Growl-Benachrichtigungen durch Aufruf von Javascript-Funktionen zu senden. Im Moment, so wie es geschrieben wurde, müssen die Leute jedoch <embed> verwenden, um das Plug-in zu initialisieren, damit Javascript es benutzen kann (etwas, das ich aus Apples Beispielen entnommen habe).Globales Objekt für Javascript um mit Safari Plug-in zu interagieren

Ich fragte mich, ob es einen Weg gab, wie ich etwas wie window.<pluginName> definieren konnte, so dass sie es nicht jedes Mal einbetten mussten? Dadurch können viele Websites damit beginnen, es zu verwenden, ohne Code zu ändern.

Ich habe mir viele Beispiele und Dokumentationen angesehen, und zwei Dinge sind aufgetaucht - "WebView" und "WebScriptObject". Ich bin ziemlich neu, also bin ich mir nicht sicher, was ich tun soll.

Antwort

2

Es gibt keine Möglichkeit, ein WebKit-Plug-in zu schreiben, das keinen Inhaltstyp verarbeitet. Deshalb sind so viele Safari "Plugins" oder "Erweiterungen" (einschließlich GrowlSafari) als Input Manager Hacks implementiert.

Die Art, wie Sie es getan haben, ist die einzige zuverlässige, sichere, unterstützte und nicht zum Scheitern verurteilte Methode.

+0

Wirklich? Das ist schlecht, denn das bedeutet auch, dass es keine echte Möglichkeit gibt, zu überprüfen, ob mein Plug-in existiert (was es schwerer macht, graziös zu degradieren). Irgendwelche mächtigen Gehirnwellen in dieser Hinsicht? – aditya

+0

Macht nichts, fand es heraus. Im Gegensatz zu Firefox implementiert WebKit die 'navigator.plugins' ziemlich gut. – aditya

Verwandte Themen