Inilah bukti konsep yang sangat terburu-buru.
Saya yakin setidaknya ada 2 tempat di mana ada perbaikan, dan saya juga yakin bahwa ini tidak akan bertahan lama di alam liar. Setiap umpan balik untuk membuatnya lebih rapi atau dapat digunakan dipersilahkan.
Kuncinya adalah mengatur id untuk elemen skrip Anda. Satu-satunya tangkapan adalah bahwa ini berarti Anda hanya dapat memanggil skrip sekali karena mencari ID untuk menarik string kueri. Ini bisa diperbaiki jika, sebaliknya, skrip loop melalui semua elemen permintaan untuk melihat apakah salah satu dari mereka menunjuk ke sana, dan jika demikian, menggunakan contoh terakhir dari elemen skrip tersebut. Bagaimanapun, lanjutkan dengan kode:
Naskah dipanggil:
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 dipanggil melalui halaman berikut:
<script id="myScript" type="text/javascript"
src="test.js?header=Test Page&text=This Works"></script>
<h1 id="docTitle"></h1>
<p id="docText"></p>