Respuesta

4

Se depende del tipo de extensión, pero no realmente. Para responder a su pregunta con mayor claridad, debe especificar de qué se trata su extensión: modifique algunas páginas (como usercripts/userstyles), amplíe las características de los navegadores u otra cosa.

Hay algunas notas de portabilidad, sin embargo, que podría ayudar a simplificar este proceso:

  1. No escribir código específico navegador. En algunos navegadores modernos, puede usar funciones HTML5, como la API de base de datos web SQL. Es difícil emular dicho comportamiento en IE, por ejemplo.
  2. Mantenga su JavaScript modular; no use métodos de JavaScript específicos del vendedor, y su código será portátil y no dependerá de TraceMonkey o V8;
  3. Separar HTML de CSS y Javascript, no haga su código sucio y complicado.
+2

¿Por qué le importaría la compatibilidad de IE? No es compatible con extensiones. – serg

+6

Sí, pero de una manera muy, muy, muy 'inusual'. –

4

de Apple provides some guidance sobre la forma de convertir el puerto una extensión de Chrome a Safari, pero el problema se va a ejecutar en cada navegador es que tiene un conjunto diferente de funcionalidad permitida para las extensiones. Incluso con Chrome to Safari, hay cosas que puedes hacer en Chrome que no puedes hacer en Safari, y viceversa.

4

Saltando un poco tarde.

Nuestra empresa - Slice Factory (descripción completa aquí) ofrece un servicio de conversión de extensión del navegador: http://gallery.extensionfactory.com/labs/conversion/ En la mayoría de los casos, su extensión de cromo funcionará perfectamente en FF y Safari.

El servicio todavía está en versión de prueba, y la conversión de Firefox funciona mejor que la de Safari. No puedo revelar completamente cuál es nuestra solución técnica, pero al ser una respuesta SO, puedo agregar algunos detalles: hemos vuelto a desarrollar una pila api de JavaScript que imita la mayoría de las API de extensión de Chrome para Safari y Firefox; en Firefox basamos nuestro trabajo en JetChrome. Además, tenemos envoltorios que vuelven a empaquetar la extensión de Chrome añadiendo nuestra biblioteca y reescribiendo manifiestos, etc.

Más allá de eso, son en su mayoría algunas buenas ideas, prueba y error, y MUCHO tiempo de desarrollo.

Como ejemplo: Safari 5.1 acaba de presentar una ventana emergente correspondiente a browser_action de Chrome, pero ya tenemos una solución alternativa que funciona para las versiones anteriores. Firefox no es compatible con HTML5 WebSQL, pero tenemos una API para ello. También ofrecemos una forma de llevar webapps a FF, y pronto a Safari. El objetivo es tener la API de Chrome como referencia e imitarla en todos los demás navegadores.

Sin necesidad de avanzar hacia nuestra solución, podría agregar que el tiempo para cubrir completamente la API de Chrome tanto en Safari como en Firefox probablemente no valga la pena, a menos que planee convertir varias extensiones. Por lo tanto, para una o dos extensiones, aconsejaría que tu código sea lo más modular posible, y que solo cree tres extensiones, ¡o que pruebe nuestro servicio!

+0

Ah, y para IE hay webslices. Los usamos para otro de nuestros productos como un "sustituto" :) – Stefano

+0

Acabo de probar su servicio, pero lamentablemente no funcionó. (IDs: hcieonlgpadegedlcpdhndifhaeahajp, bkeiokdfjgnaglohebonlmpimnpinahd) –

+0

@StefanSchmidt desafortunadamente, ¡siempre hay algunas limitaciones! El primero no funciona porque buscan un elemento en la página antes de que se cree. Es una suerte que funcione en Chrome, en realidad. El segundo se convierte y funciona bien en Firefox; no se convierte en safari debido a un formato de imagen no compatible, lo arreglé pero es probable que no funcione debido a la separación de cookies entre las ventanas emergentes y las páginas en Safari. Si tiene más interés, contácteme a través del correo electrónico en la parte inferior de la página del sitio web. – Stefano

Cuestiones relacionadas