आधुनिक ब्राउज़रों में भी, यह उपयोगी हो सकता है। मैं वास्तव में आज इस समस्या में भाग गया, ठीक है क्योंकि मैं अपने html में जावास्क्रिप्ट को एम्बेडेड होने से बचना चाहता था।
मेरे पास एक html पृष्ठ है जिसे ऊपर दिया गया है http://host/variable_app_name/pagename
, जहाँ variable_app_name
कई मान हो सकते हैं (y'know, परिवर्तनीय)। यदि वह स्थिर फ़ाइलों तक पहुँच प्राप्त करना चाहता है http://host/static/variable_app_name/filename
, तो उसे url का उपयोग करना पड़ता है , इसलिए मैं पहली बार ब्राउज़र के स्थान को देखे बिना स्थैतिक फ़ाइल स्थान को निर्दिष्ट नहीं कर सकता variable_app_name
।
मुख्य जावास्क्रिप्ट फ़ाइल से लिंक करने के लिए मैं निम्नलिखित कार्य करता हूँ:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></script>\n');
</script>
उपरोक्त कोड क्रोम के नवीनतम संस्करण में भी फट जाएगा, क्योंकि स्क्रिप्ट टैग को जावास्क्रिप्ट स्ट्रिंग के बीच में समाप्त कर दिया जाएगा और शेष स्ट्रिंग को HTML के रूप में व्याख्या किया जाएगा, जैसे:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js">
</script>
\n');
</script>
इसे ठीक करने के कई तरीके हैं, लेकिन मुझे एक html टिप्पणी का उपयोग करना पसंद है।
Html टिप्पणी के साथ:
<script type="text/javascript" >
<!--
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></script>\n');
-->
</script>
जावास्क्रिप्ट स्ट्रिंग तोड़कर:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></scr'+'ipt>\n');
</script>
डॉक्यूमेंट का उपयोग करने के बजाय स्क्रिप्ट टैग बनाएं और जोड़ें।
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '/static/'+variable_app_name+'/pagename.js';
document.head.appendChild(script);
</script>
मुझे html टिप्पणी का उपयोग करना पसंद है क्योंकि यह एक संक्षिप्त परिवर्तन है और इसे प्रत्येक लिंक की गई फ़ाइल के बारे में दोहराने या सोचने की आवश्यकता नहीं होगी।