Pregunta

¿Es seguro inyectar secuencias de comandos de jQuery usando jsonp?

La instalación de mi aplicación web es - la adición de una secuencia de comandos para el sitio web de un cliente (como Google Analytics). Estaba pensando en el uso de jQuery en la página web del cliente, como parte de mi propio guión inyectado.

Me preguntaba, si hay algún tipo de riesgo? La aplicación debe ser compatible con cualquier tipo de página web.

Gracias Yaron

¿Fue útil?

Solución

Su difícil saber lo que está haciendo con su biblioteca, pero parece que está construyendo algún tipo de widget para su uso en múltiples sitios.

A partir de aquí abajo se ha actualizado después de un comentario esclarecedor del primer @K me causó investigo exactamente cómo se podría incluir dos copias de jQuery si es necesario:

es general mal a usar jQuery si usted está construyendo un widget que vivir en un sitio fuera de su control, y se añadirán al sitio con un " copiar este código de inserción y pegar en su sitio tipo" de funcionalidad. (Por supuesto widgets y plugins jQuery abundan, pero estos normalmente se eligen y se instalan / implementado por desarrolladores no un genérico "copia-n-goma" aplicación tipo de widget)

Probablemente la razón más grande (después de darse cuenta que puede ejecutar dos copias de jQuery en la misma página) es el aumento de tamaño del archivo. Ya sea que esté justificado dependerá de sus necesidades y la función particulares. Sencilla pequeño widget = JS recta. página web compleja de extensión de front-end, entonces probablemente lo es la pena el aumento de tamaño de archivo.

Para incluir de forma adecuada (por lo que no se opongan a los conflictos en su sitio) siguen un flujo de trabajo que se ve algo como esto:

  1. Agregar dinámicamente jQuery para su página de uso de la API de Google como se ha mencionado en las otras respuestas aquí.
  2. var mywidget_jQuery = $.noConflict( true ); que restaurará el significado original de $ Ejecutar y restaurar el significado original de window.jQuery.
  3. Agregar dinámicamente el archivo de script, pero asegúrese de envolver toda la cosa en un auto ejecutar función anónima como esto:

JS

(function($){
    ... Your code here ...
})(mywidget_jQuery);

Ahora, se puede utilizar con seguridad $ dentro de su función especial y todas las funciones de jQuery que desee sin problema.

Crédito adicional podría envolver los pasos 1 y 2 en una sentencia if que las pruebas si se define window.jQuery y si, prueba si jQuery.fn.version es lo suficientemente alta como para ejecutar el código. Si cualquiera de las pruebas falla, a continuación, ejecute los pasos 1 y 2. Si se aprueba, sin embargo, a continuación, basta con ejecutar var mywidget_jQuery = window.jQuery manera que el script se incluye en el paso 3 seguirá funcionando.

Otros consejos

Puede agregar jQuery a un sitio web, simplemente añadiendo un elemento <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.js" />.

Sin embargo, asegúrese de llamar jQuery.noConflict() en caso de que utilizan una palabra clave diferente $ .

Si usted es justo después de una referencia a la biblioteca, ¿por qué no acaba de vincular a la API alojado en Google Código ?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top