2010-06-22 3 views
17

पता कर सकता है यदि मेरे पास साइट, example.com, और उस साइट पर एक पृष्ठ subdomain.example.com/serveAd.js पर एक जावास्क्रिप्ट संदर्भित करता है - क्या कोई तरीका है ServAd.js के भीतर से अपना यूआरएल जानने के लिए, या जिस डोमेन से इसे डाउनलोड किया गया था?किसी जावास्क्रिप्ट फ़ाइल में कोड अपना डोमेन/यूआरएल

(जे एस निश्चित रूप से पेज है कि यह कहा जाता है के बारे में सभी जानते हैं कर सकते हैं। मुझे पता है कि अगर जे एस अपने स्वयं के मूल के बारे में जानता है चाहता हूँ।)

+2

rfc2606 –

+1

की डुप्लिकेट के लिए संपादित: http://stackoverflow.com/questions/710957/how-might-i-get-the-script-filename-from -within-that-script – Shog9

+2

यह भी देखें http://stackoverflow.com/questions/3019112/getting-url-of-executing-javascript-file-ie6-7-problem- लगभग –

उत्तर

12

आप jQuery उपयोग कर रहे थे, तो आप बात इस तरह से पूरा url मिल सकता है इसे और अधिक काम का समय लग सकता है, लेकिन आप अंदाजा हो;)

+1

यह करने का यह एक अच्छा तरीका है। –

+3

यह सुनिश्चित नहीं है कि यह इस प्रश्न के बाद jquery में परिवर्तनों के कारण है, लेकिन अब यह केवल $ ('script [src $ = "servAd.js"]' के साथ मेरे लिए काम करता है)। Attr ('src'); // फ़ाइल नाम के चारों ओर उद्धरण – atmd

4

मैं बहुत यकीन है, के रूप में स्क्रिप्ट है कि पिछले पार्स किया गया है डीओएम में उपलब्ध <script> नोड को एक पार्स किया जाएगा। jQuery का उपयोग नहीं करते हैं

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

,:

को देखने के लिए एक बाहरी जे एस में इस प्रयास करें:

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

यदि स्क्रिप्ट फ़ाइल को createElement/appendChild का उपयोग करके लोड किया गया था, तो यह DOM में कहीं भी हो सकता है (इस पर निर्भर करता है कि आपने इसे कहां जोड़ा है)। – bart

संबंधित मुद्दे