2010-06-22 8 views
17

Se si dispone di un sito, esempio.com, e una pagina su quel sito fa riferimento a un Javascript su subdomain.example.com/serveAd.js - c'è un modo all'interno di serveAd.js per conoscere il proprio URL o il dominio da cui è stato scaricato?Il codice in un file Javascript può conoscere il proprio dominio/URL

(Il JS può certamente sapere tutto sulla pagina che lo ha chiamato. Voglio sapere se il JS conosce la propria origine.)

+2

modificato per rfc2606 –

+1

Duplicato di: http://stackoverflow.com/questions/710957/how-might-i-get-the-script-filename-from -con-lo-script – Shog9

+2

Vedere anche http://stackoverflow.com/questions/3019112/getting-url-of-executing-javascript-file-ie6-7-problem-mostly –

risposta

12

Se si sta utilizzando jQuery, si potrebbe ottenere l'URL completo, con questo genere di cose:

var fullJsUrl= $('script[src$=serveAd.js]').attr('src'); 

Se non si utilizza jQuery, potrebbe richiedere più lavoro, ma si ottiene l'idea;)

+1

Questo è un bel modo per farlo. –

+3

Non sono sicuro se questo è dovuto ai cambiamenti di jquery da questa domanda, ma ora funziona solo con me con $ ('script [src $ = "serveAd.js"]'). Attr ('src'); // indica il nome del file – atmd

4

Sono abbastanza sicuro, come lo script viene analizzato che l'ultima Il nodo <script> disponibile nel DOM sarà quello analizzato.

Prova questa in un JS esterno per vedere:

var scripts = document.getElementsByTagName('script'); 
var lastScript = scripts[scripts.length - 1]; 
alert(lastScript.src); 
+4

Non se il file di script è stato caricato utilizzando createElement/appendChild, quindi potrebbe essere ovunque nel DOM (a seconda di dove è stato aggiunto a). – bart

Problemi correlati