JavaScript静态页面值传递:URL篇

本文详细介绍JavaScript静态页面值传递之URL篇,能过URL进行传值.把要传递的信息接在URL上.

Post.htm

XML/HTML代码
        
  1. <inputtype="text"name="username">
  2.     
  3. <inputtype="text"name="sex">
  4.     
  5. <inputtype="button"value="Post">
  6.     
  7. <scriptlanguage="javascript">
  8.     
  9. function Post()
  10.     
  11. {
  12.     
  13.   //单个值 Read.htm?username=baobao;
  14.     
  15.   //多全值 Read.htm?username=baobaosex=male;
  16.     
  17.   url="Read.htm?username="+escape(document.all.username.value);
  18.     
  19.   url += "sex=" + escape(document.all.sex.value);
  20.     
  21.   location.href=url;
  22.     
  23. }
  24.     
  25. </script>

Read.htm

XML/HTML代码
        
  1. <scriptlanguage="javascript">
  2.     
  3. /*
  4.     
  5. *--------------- Read.htm -----------------
  6.     
  7. * Request[key]
  8.     
  9. * 功能:实现ASP的取得URL字符串,Request("AAA")
  10.     
  11. * 参数:key,字符串.
  12.     
  13. * 实例:alert(Request["AAA"])
  14.     
  15. *--------------- Request.htm -----------------
  16.     
  17. */
  18.     
  19. varurl=location.search;
  20.     
  21. varRequest=newObject();
  22.     
  23. if(url.indexOf("?")!=-1)
  24.     
  25. {
  26.     
  27.   varstr=url.substr(1) //去掉?号
  28.     
  29.   strstrs= str.split("&");
  30.     
  31.   for(vari=0;i<strs.length;i++)
  32.     
  33.   {
  34.     
  35.      Request[strs[i ].split("=")[0]]=unescape(strs[ i].split("=")[1]);
  36.     
  37.   }
  38.     
  39. }
  40.     
  41. alert(Request["username"])
  42.     
  43. alert(Request["sex"])
  44.     
  45. </script><scriptlanguage="JavaScript">
  46.     
  47. <!--
  48.     
  49. function Request(strName)
  50.     
  51. {
  52.     
  53. varstrHref="www.abc.com/index.htm?a=1&b=1&c=测试测试";
  54.     
  55. varintPos=strHref.indexOf("?");
  56.     
  57. varstrRight=strHref.substr(intPos + 1);
  58.     
  59. vararrTmp=strRight.split("&");
  60.     
  61. for(vari=0; i<arrTmp.length; i++)
  62.     
  63. {
  64.     
  65. vararrTemp=arrTmp[i ].split("=");
  66.     
  67. if(arrTemp[0].toUpperCase() == strName.toUpperCase()) return arrTemp[1];
  68.     
  69. }
  70.     
  71. return "";
  72.     
  73. }
  74.     
  75. alert(Request("a"));
  76.     
  77. alert(Request("b"));
  78.     
  79. alert(Request("c"));
  80.     
  81. //-->
  82.     
  83. </script>
  84.     
  85. <script>
  86.     
  87. String.prototype.getQuery=function(name)
  88.     
  89. {
  90.     
  91.   varreg=newRegExp("(^|&)"+ name +"=([^&]*)(&|$)");
  92.     
  93.   varr=this.substr(this.indexOf("?")+1).match(reg);
  94.     
  95.   if (r!=null) return unescape(r[2]); return null;
  96.     
  97. }
  98.     
  99. varstr="www.abc.com/index.htm?a=1&b=1&c=测试测试";
  100.     
  101. alert(str.getQuery("a"));
  102.     
  103. alert(str.getQuery("b"));
  104.     
  105. alert(str.getQuery("c"));
  106.     
  107. </script>

优点: 取值方便.可以跨域.

缺点: 值长度有限制

如果您觉得我的文章有帮助,请随意赞赏!

*发表评论

用QQ账号登录  请登录后发表评论