यहाँ अवधारणा का एक बहुत ही प्रचलित प्रमाण है।
मुझे यकीन है कि कम से कम 2 जगह हैं जहां सुधार हो सकता है, और मुझे यह भी यकीन है कि यह लंबे समय तक जीवित नहीं रहेगा। इसे और अधिक प्रस्तुत करने योग्य या उपयोगी बनाने के लिए किसी भी प्रतिक्रिया का स्वागत है।
कुंजी आपके स्क्रिप्ट तत्व के लिए एक आईडी सेट कर रही है। एकमात्र पकड़ यह है कि इसका मतलब यह है कि आप स्क्रिप्ट को केवल एक बार कॉल कर सकते हैं क्योंकि यह क्वेरी स्ट्रिंग को खींचने के लिए उस आईडी की तलाश करता है। यह तय किया जा सकता है, अगर, इसके बजाय, स्क्रिप्ट सभी क्वेरी तत्वों के माध्यम से यह देखने के लिए है कि उनमें से कोई भी इसे इंगित करता है, और यदि ऐसा है, तो ऐसे स्क्रिप्ट तत्व के अंतिम उदाहरण का उपयोग करता है। वैसे भी, कोड के साथ:
स्क्रिप्ट कहा जा रहा है:
window.onload = function() {
//Notice that both possible parameters are pre-defined.
//Which is probably not required if using proper object notation
//in query string, or if variable-variables are possible in js.
var header;
var text;
//script gets the src attribute based on ID of page's script element:
var requestURL = document.getElementById("myScript").getAttribute("src");
//next use substring() to get querystring part of src
var queryString = requestURL.substring(requestURL.indexOf("?") + 1, requestURL.length);
//Next split the querystring into array
var params = queryString.split("&");
//Next loop through params
for(var i = 0; i < params.length; i++){
var name = params[i].substring(0,params[i].indexOf("="));
var value = params[i].substring(params[i].indexOf("=") + 1, params[i].length);
//Test if value is a number. If not, wrap value with quotes:
if(isNaN(parseInt(value))) {
params[i] = params[i].replace(value, "'" + value + "'");
}
// Finally, use eval to set values of pre-defined variables:
eval(params[i]);
}
//Output to test that it worked:
document.getElementById("docTitle").innerHTML = header;
document.getElementById("docText").innerHTML = text;
};
स्क्रिप्ट निम्नलिखित पेज के माध्यम से बुलाया:
<script id="myScript" type="text/javascript"
src="test.js?header=Test Page&text=This Works"></script>
<h1 id="docTitle"></h1>
<p id="docText"></p>