No es una técnica automática de pase variable, como usted puede pensar.
Toda su código hace es recorrer todos los script
etiquetas hasta que encuentren la que ha cargado el código (comparando el atributo src
a una expresión regular (/(firebug-lite(?:-\w+)?(?:\.js|\.jgz))(?:#(.+))?$/;
).
Si se encuentra la etiqueta, simplemente Obtiene el .innerHTML
de la etiqueta script
, y lo evalúa.
supongo que esto (sin nombre) techique no es relevante en el mundo real, ya que no tenemos un método garantizado de hallazgo que script
etiqueta se refiere a nuestra biblioteca (especialmente porque es común que todos los scripts se combinen en un archivo de script en l ive servidores).
Además, tengo mis dudas sobre cómo es esto; ya que sin duda no pasa por el spec, que establece:
Una vez dicho esto (y pensado en ello): el spec afirma que el navegador no debe interpretar ambos. Sin embargo, esto no es relevante con esta técnica. El navegador no tiene que intervenir a la vez, ya que el contenido del script se lee en innerHTML
(e incluso si lo hizo en el contenido, de todos modos no causa ningún daño). Mientras el navegador cumpla con las especificaciones y cargue el URI (que todos los navegadores usan), ¡no hay problema! (además de no saber/garantizar a qué etiqueta script
pertenece su biblioteca).
El script se puede definir dentro de los contenido del elemento de secuencia de comandos o en un archivo externo. Si no se establece el atributo src , los agentes de usuario deben interpretar el contenido del elemento como el script . Si el src tiene un valor de URI, los agentes de usuario deben ignorar los contenidos del elemento y recuperar el script a través del URI.
(es decir, no interpreto ambos).
Es esto similar a JSONP? http://en.m.wikipedia.org/wiki/JSONP – mason