DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JavaScript實現在頁面間傳值的方法
JavaScript實現在頁面間傳值的方法
編輯:關於JavaScript     

本文實例講述了JavaScript實現在頁面間傳值的方法。分享給大家供大家參考。具體如下:

問題如下:

在 a.html 頁面中,<form> 的 onsubmit 事件調用一個方法 foo( ),打開 b.html 頁面的同時給 b.html 傳遞參數。方法 foo( ) 中需要傳遞變量參數到 b.html 頁面,在 b.html 頁面接受參數值,但不能使用服務器端技術。

解決代碼如下:

a.html頁面如下:

<html>
<head>
  <title> demo </title>
  <meta name="Author" content="xugang" />
  <script type="text/javascript">
  function foo(){
   var a ="abc"; // a為變量值
   var str = "b.html?id="+a+";";
   //alert(document.frm.action);
   //方案一(無效)
   // document.frm.action = str;
   //方案二(無效)
   // window.location.href = str;
   //方案三(有效)
   window.location.replace(str);
   return false;
  }
 </script>
</head>
<body>
   <FORM name="frm" method="get" 
   onsubmit = "return foo()" >
      <INPUT TYPE="SUBMIT" />
   </FORM>
</body>
</html>

注意:必須 b.html 頁面事先存在即可。

b.html 獲得參數值的代碼如下:

b.html 部分代碼

var getQueryString = function(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  var r = window.location.search.substr(1).match(reg);
  if (r != null) return r[2]; return "";
}

補充:

myjs.js 代碼:

function foo(){ 
    var str = "abc"; 
    //document.forms[0].hid.value = str; 
    var frm = window.event.srcElement; 
    frm.hid.value = str; 
    return true; 
}

a.html 代碼:

<html> 
<head> 
 <title> demo </title> 
 <meta name="Author" content="xugang" /> 
 <script src="myjs.js"></script> 
</head> 
<body> 
 <FORM name="frm" METHOD="get" ACTION="b.html" 
 onsubmit="return foo()"> 
  <INPUT TYPE="hidden" id="hid" name="hid"> 
  <INPUT TYPE="submit" value="提交"> 
 </FORM> 
</body> 
</html>

注意:給 b.html 頁面傳值時,b.html 頁面必須事先已存在!

b.html 代碼:

<HTML> 
 <HEAD> 
  <TITLE> New Document </TITLE> 
 </HEAD> 
 <BODY> 
  <SCRIPT LANGUAGE="JavaScript"> 
   document.write(decodeURIComponent(location.search.substr(3)));
  </SCRIPT> 
 </BODY> 
</HTML>

希望本文所述對大家的javascript程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved