นี่เป็นข้อพิสูจน์แนวคิดที่รวดเร็วมาก
ฉันแน่ใจว่ามีอย่างน้อย 2 แห่งที่สามารถปรับปรุงได้และฉันก็มั่นใจว่าสิ่งนี้จะไม่รอดในป่านาน ข้อเสนอแนะใด ๆ ที่จะทำให้มันเรียบร้อยมากขึ้นหรือใช้งานได้ก็ยินดีต้อนรับ
กุญแจสำคัญคือการตั้งรหัสสำหรับองค์ประกอบสคริปต์ของคุณ สิ่งที่จับได้เพียงอย่างเดียวคือสิ่งนี้หมายความว่าคุณสามารถเรียกสคริปต์ได้เพียงครั้งเดียวเนื่องจากจะมองหา ID นั้นเพื่อดึงสตริงข้อความค้นหา สิ่งนี้อาจได้รับการแก้ไขถ้าสคริปต์จะวนซ้ำผ่านองค์ประกอบการสืบค้นทั้งหมดเพื่อดูว่ามีสิ่งใดที่ชี้ไปที่มันและถ้าเป็นเช่นนั้นจะใช้อินสแตนซ์สุดท้ายขององค์ประกอบสคริปต์ดังกล่าว อย่างไรก็ตามด้วยรหัส:
สคริปต์ถูกเรียก:
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>