2010-07-08 15 views
5

Por lo tanto, debo determinar el tipo de página en un CRM propietario, utilizando JavaScript. La única manera de determinar el tipo de página (es decir, la única diferencia consistente en el front end) es mediante el examen de una etiqueta de script (de muchas listas) cuyo atributo src comienza con/modules /.Extraer el atributo src de la etiqueta script y analizar de acuerdo con las coincidencias particulares

En una lista de una docena de etiquetas script en el encabezado, cada página tiene una línea con el siguiente formato

<script src="/modules/example/includes/sample.js" type="text/javascript"></script> 

Ahora, el orden de la etiqueta script nunca es el mismo, pero, no hay siempre un script que tenga/modules/blah. Necesito extraer blah a mi script para detectar qué tipo de página es.

Entonces, ¿cómo puedo, usando JavaScript o jQuery, extraer el valor src de la etiqueta script, donde src comienza con/modules, y almacenar el valor después de eso ('example', en el ejemplo anterior) como una variable javascript ?

Respuesta

14

Bueno, puede iniciar mediante la recopilación de todos los elementos del guión. Con jQuery, es tan simple como

var scripts = $("script"); 

limitaría entonces ese conjunto de los elementos que tienen un atributo src:

var scripts = $("script[src]"); 

... y más limitarlo a los que tienen un srcattribute beginning with/modules"/":

var scripts = $("script[src^='/modules/']"); 

... lo cual dado su descripción debe dar lugar a un conjunto de exactamente un elemento, de la que ahora se puede tirar de laValor de atributoen sí:

var path = $("script[src^='/modules/']").attr('src'); 

Ok, eso fue fácil: ahora extraer la siguiente parte de la ruta. Hay muchas maneras de hacerlo, pero la división es rápida & tonto: cree una matriz de partes utilizando '/' como separador, luego elija el tercer elemento (que será el que está después de "módulos"):

var pathPart = $("script[src^='/modules/']").attr('src').split('/')[2]; 

Obviamente, todo esto es muy específico para el formato exacto de la ruta del script que está utilizando como un ejemplo, pero hay que darle una buena idea de cómo empezar ...

+0

Gracias! Acabo de llegar al tercer ejemplo yo mismo; necesaria para superar la joroba de la última. – Yahel

+0

@yc: lo he expandido un poco ... – Shog9

Cuestiones relacionadas