2009-06-02 4 views
2

J'ai actuellement un contrôle ActiveX qui relie dans beaucoup de DLL c/c + +. Le problème est que nous avons maintenant besoin de ce contrôle pour fonctionner sur les navigateurs autres que IE (surtout Firefox).Porting contrôle ActiveX pour fonctionner sur plusieurs navigateurs

Comme je le vois, j'ai les options suivantes:

  • Ecrivez le contrôle en tant que plugin firefox. Cela semble être le plus rapide, mais nous serions alors très proches de Mozilla.
  • Réécriture complète dans Silverlight ou flex. En raison de la taille de notre contrôle, cela prendrait probablement trop de temps.
  • Créez une solution mixte côté client et côté client, à l'aide de JavaScript pour l'interface utilisateur, similaire à Google Docs.

Vous vous demandez simplement si quelqu'un d'autre a tenté de résoudre le problème du portage des contrôles ActiveX? Et, le cas échéant, quels conseils pourraient-ils offrir?

Merci à l'avance

Répondre

6

Faites un plug-in Netscape (voir http://www.mozilla.org/projects/plugins/) et il fonctionnera avec tous les navigateurs Windows traditionnels sauf IE (et les navigateurs sur d'autres plates-formes aussi bien, si vous pouvez porter le code à ces plates-formes) .

+0

Bien sûr, c'est ce que je voulais dire par firefox plugin, mais est-ce que cela ne me limitera pas à exécuter firefox? Merci, je pensais que ce serait la seule solution – gonzohunter

+0

Non, l'architecture Netscape Plugin est supportée par tous les navigateurs grand public à l'exception de IE; pour cela, vous pouvez utiliser https://developer.mozilla.org/en/ActiveX_Control_for_Hosting_Netscape_Plug-ins_in_IE ou simplement continuer à utiliser votre interface ActiveX actuelle. – RichieHindle

+1

Juste pour info, il y a beaucoup de différences subtiles dans les implémentations NPAPI à travers les navigateurs, donc vous aurez besoin de faire beaucoup de test et de débogage. –

3

Utilisation Firebreath: http://www.firebreath.org

Son conçu pour résoudre exactement votre problème; vous mettez tout en œuvre une fois sous l'abstraction de firebreath. Si vous avez besoin de fonctionnalités qui ne sont pas supportées ou si vous ne savez pas comment travailler avec FireBreath, la liste de dev est très bien pour répondre rapidement aux requêtes. Et, comme il est open source (mais sous licence pour que vous n'ayez pas à ouvrir votre code source), vous pouvez également effectuer des modifications vous-même. Tout ce qui est écrit en utilisant firebreath fonctionnera sur IE, Firefox, Chrome, Safari et éventuellement Opera (Opera n'implémente pas correctement NPAPI à 100%, avec un peu de travail, vous pouvez le rendre tout compatible).