İşte çok acele bir kavram kanıtı.
Eminim ki iyileştirmeler yapılabilecek en az 2 yer vardır ve bunun vahşi doğada uzun süre hayatta kalamayacağından da eminim. Daha sunulabilir veya kullanılabilir hale getirmek için herhangi bir geri bildirim hoş geldiniz.
Anahtar, komut dosyası öğeniz için bir kimlik belirlemektir. Tek yakalama, bu, komut dizesini sorgu dizesini çekmek için aradığı için komut dosyasını yalnızca bir kez çağırabileceğiniz anlamına gelir. Bunun yerine, komut dosyası, herhangi birinin işaret edip etmediğini görmek için tüm sorgu öğeleri arasında dolaşırsa ve bu durumda böyle bir komut dosyası öğesinin son örneğini kullanıyorsa bu sorun giderilebilir. Her neyse, şu kodla:
Komut dosyası çağrılıyor:
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;
};
Aşağıdaki sayfa aracılığıyla çağrılan komut dosyası:
<script id="myScript" type="text/javascript"
src="test.js?header=Test Page&text=This Works"></script>
<h1 id="docTitle"></h1>
<p id="docText"></p>