使用javascript代替CGI
你可能對CGI腳本比較熟悉,利用CGI你可以通過表單將數字或者變量從一個網頁上傳遞到另外一個網頁。當然,你可以利用“POST”將變量以獨立的線程進行傳遞而不顯示在浏覽器中,或者利用“GET”將變量編碼到URL。
JavaScript不能在變量在服務器端被處理的時候利用POST方法;但是你可以注意到當你提交一個使用GET方法的表單的時候,定位條上在文件名之後包含了額外的信息,比如:
www.pconline.com.cn/mypage.html?name=Mike&age=33
利用JavaScript我們可以訪問這些變量,具體可以使用一個相關的數組合來實現,如下所示:
<SCRIPT language="JavaScript1.1">
<!-- Hide from older browsers
function formInput() {
// empty object
}
var valueOf = new formInput();
var pairs = document.location.search.substring(1).split("&");
for (var i=0; i < pairs.length; i++) {
var values = pairs[i].split("=");
valueOf[values[0]] = unescape(values[1]);
}
// Stop hiding -->
</SCRIPT>
以上代碼的作用是從浏覽器的定位條上將變量提取出來並將它們存儲在一個相關的數組合中。在網頁的其它部分任何的變量都可以這樣被引用,如:valueOf["variablename"],當然這些引用要在SCRIPT標簽中。
作為一個測試,我們可以利用for .. in loop循環語句列出所有的被傳遞的變量。這允許我們循環掉出所有相關數組的內容而不管我們是不是直到這些變量的名字。具體代碼如下:
<SCRIPT language="JavaScript">
<!-- Hide from older browsers
for (var x in valueOf) {
document.write(x + " = " + valueOf[x] + "<br>");
}
// Stop hiding -->
</SCRIPT>
這時候就會輸入以下的內容:
name=Mike
age=33
這個例子雖然沒什麼用,但是它只是為了向你顯示程序是如何工作的。這些變量現在就可以用在填充表單元素的內容,或者顯示圖片或者創建其它的網頁內容,總之可以實現CGI能實現的內容。
點擊此處去測試效果頁面