2010-07-08 14 views
5

Quindi, devo determinare il tipo di pagina in un CRM proprietario, utilizzando JavaScript. L'unico modo per determinare il tipo di pagina (ovvero, l'unica differenza consistente sul front-end) consiste nell'esaminare un tag script (fuori da molti elenchi) il cui attributo src inizia con/modules /.Estratto attributo src dal tag script e analisi in base a corrispondenze particolari

In un elenco di una dozzina di tag script nell'intestazione, ogni pagina ha una linea con il seguente formato

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

Ora, l'ordine del tag script è mai la stessa, ma, non c'è sempre uno script che ha/modules/blah. Ho bisogno di estrarre blah per il mio script in grado di rilevare che tipo di pagina è.

Quindi, come faccio, utilizzando JavaScript o jQuery, estrai il valore src del tag script, dove src inizia con/modules, e memorizza il valore dopo quello ('esempio', nell'esempio sopra) come variabile javascript ?

risposta

14

Bene, è possibile iniziare raccogliendo tutti gli elementi dello script. Con jQuery, questo è semplice come

var scripts = $("script"); 

Poi limitano che insieme agli elementi che hanno un attributo src:

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

... e in seguito limitano a quelli con srcattribute beginning with "/ moduli/":

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

... che data la tua descrizione dovrebbe tradursi in una serie di esattamente un elemento, da cui si può ora tirare la src valore attributo stesso:

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

Ok, è stato facile - ora per estrarre la parte successiva del percorso. Ci sono molti modi per farlo, ma dividere è veloce & stupido: creare un array di parti usando '/' come separatore, quindi selezionare il terzo elemento (che sarà quello dopo "moduli"):

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

Ovviamente, tutto questo è molto specifico per il formato esatto del percorso dello script che si sta utilizzando come esempio, ma dovrebbe darvi una buona idea di come iniziare ...

+0

Grazie! Sono appena arrivato al terzo esempio; necessario tenuto per superare la gobba per l'ultimo. – Yahel

+0

@yc: l'ho ampliato un po '... – Shog9

Problemi correlati