javascript实现HTML静态页面传值的方法

Html静态页面之间的传递参数方法,一般是通过在html?a=1&b=2&cc=hello这样的显式方式进行。
这就需要在接收页面用JavaScript进行取值

静态页面值传递之URL

因此附上相关代码,学习如何把要传递的信息接在URL上,并进行发送接收。
发送页面用form来取值 用到escape函数进行编码

<input type="text" name="username">
<input type="text" name="sex">
<input type="button" value="Post">
<script language="javascript" >
function Post() {
//单个值 Read.htm?username=baobao;
//多全值 Read.htm?username=baobao&sex=male;
url = "Read.htm?username="+escape(document.all.username.value);
url += "&sex=" + escape(document.all.sex.value);
1location.href=url;
}
</script>

接收页面可用以下多种方式进行处理

 <script language="javascript" >
 /*
 * 方法一
 */
 var url=location.search;
 var Request = new Object();
 if(url.indexOf("?")!=-1)
 {
   var str = url.substr(1) //去掉?号
   strs = str.split("&");
   for(var i=0;i<strs.length;i++)
   {
      Request[strs[i ].split("=")[0]]=unescape(strs[ i].split("=")[1]);
   }
 }
 alert(Request["username"])
 alert(Request["sex"])
 </script>
 <script language="JavaScript">
 /*
 * 方法二
 */
 function Request(strName)
 {
   var strHref = "www.example.net/index.htm?a=1&b=1&c=测试测试";
   var intPos = strHref.indexOf("?");
   var strRight = strHref.substr(intPos + 1);
   var arrTmp = strRight.split("&");
   for(var i = 0; i < arrTmp.length; i++)
   {
     var arrTemp = arrTmp[i ].split("=");
     if(arrTemp[0].toUpperCase() == strName.toUpperCase()) return arrTemp[1];
   }
   return "";
 }
 alert(Request("a"));
 alert(Request("b"));
 alert(Request("c"));
 </script>
 <script>
 /*
 * 方法三
 */
 String.prototype.getQuery = function(name)
 {
   var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
   var r = this.substr(this.indexOf("?")+1).match(reg);
   if (r!=null) return unescape(r[2]); return null;
 }
   var str ="www.jb51.net/index.htm?a=1&b=1&c=测试测试";
   alert(str.getQuery("a"));
   alert(str.getQuery("b"));
   alert(str.getQuery("c"));
 </script>
发表新评论
Gravatar图片显示区