讓網頁重新導向 -- 透過Java Script改變Form內的Action value




網頁重新導向有不少作法,舉凡說:


  1. 直接在 form action=”要導向的那個網頁“,所要做的動作 implement 在那個網頁的CGI做處理。
  2. 透過網址傳遞參數。(參數會放在 pHttp->au1PostQuery)
  3. => STRCPY(pHttp->au1Name, “Username”);
    => HttpGetValuebyName(pHttp->au1Name, pHttp->au1Value,pHttp->au1PostQuery)
    
  4. 網頁導向的方式之三
  5. =>STRCPY (pHttp->ai1HtmlName,”MgtUserAccount.html”); //設定導向頁面
    =>HttpReadhtml(pHttp); //取得網頁相關資訊
    =>ProcessUserAccountSetupPageGet(pHttp); //送出網頁
    

這裡用的是使用 Java Script,將原本 Form 內的 Action 直接換掉。

比方說在這個例子,當判定 dat_item.dat_security_mode.value 為 1 時,直接取代掉原本的 action value。

if((dat_item.dat_security_mode.value == 1))
{
alert("It will take some time to reboot device! Please wait a moment!");
document.dataform.action="/cgi-bin/setobject?/tools/reboot_done.shtml";
}
else
document.dataform.action="/cgi-bin/setobject?/home/home_wireless_basic.shtml";


其實也可以另外寫一個 function ,去處理 form 的 OnClick 事件,像是:

function Submit_Form(obj){ 
 var cValue=obj.value 
 switch (nIndex){ 
  case 'value1': 
   document.fm_Main.action= "html1.html "; 
   break 
  case 'value2': 
   document.fm_Main.action= "html1.html "; 
   break 
 } 
} 

藉此來處理Form原本要做的 OnClick 事件:

function Submit_Form(obj){ 
 var cValue=obj.value 
 switch (nIndex){ 
  case 'value1': 
   document.fm_Main.action= "html1.html "; 
   break 
  case 'value2': 
   document.fm_Main.action= "html1.html "; 
   break 
 } 
} 



留言

這個網誌中的熱門文章

How to use ebtables: ebtable 的小筆記

解決 VirtualBox 無法開啟 NS_ERROR_FAILURE (0x80004005)