2009-07-06 5 views
2

Le problème est que j'ai écrit un plug-in Safari (Growler) qui permet aux applications Web d'envoyer des notifications Growl en appelant des fonctions Javascript. Cependant, au moment où il est écrit, les gens doivent utiliser <embed> pour initialiser le plug-in afin que Javascript puisse commencer à l'utiliser (quelque chose que j'ai pris dans les exemples d'Apple).Objet global pour Javascript d'interagir avec le plug-in Safari

Je me demandais s'il y avait un moyen de définir quelque chose comme window.<pluginName> afin qu'ils n'aient pas à l'intégrer à chaque fois? Cela permettra à beaucoup de sites de commencer à l'utiliser sans changer de code. J'ai regardé beaucoup d'exemples et de documentation, et deux choses sont apparues - 'WebView' et 'WebScriptObject'. Je suis assez nouveau à ce sujet, donc je ne suis pas vraiment sûr de ce qu'il faut faire.

Répondre

2

Il est impossible d'écrire un plug-in WebKit qui ne gère pas un type de contenu. C'est pourquoi tant de «plug-ins» ou «extensions» Safari (y compris GrowlSafari) sont implémentés en tant que hacks de gestionnaire d'entrée. La façon dont vous l'avez fait est la seule façon fiable, sûre, supportée et non condamnée de le faire.

+0

Vraiment? C'est mauvais, parce que cela signifie aussi qu'il n'y a pas vraiment de moyen de vérifier si mon plug-in existe (ce qui le rend plus difficile à dégrader avec élégance). Des ondes cérébrales puissantes à cet égard? – aditya

+0

Peu importe, compris. Contrairement à Firefox, WebKit implémente plutôt 'navigator.plugins'. – aditya