当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript静态页面值传递:URL篇

Javascript
JS教程:浅谈ECMAScript自动插入分号
JavaScript教程:几种比较熟悉的编程习惯
JS实例:登陆失败后跳出框架打开
webdesignledger推选的2009年度最佳jQuery插件
javaScript教程:以实例方式学习call函数
JS教程:词法作用域和闭包
表单验证中时间起止 如何做到递归处理
JS实例教程:当心JavaScript代码陷阱
Firebug技巧:脚本调试,选项卡和CSS调试
学习javascript:牛人的讲座视频和PPT
Clearbox 3:很酷的仿Lightbox脚本
JavaScript教程:详细解析网页图片预览效果
JS代码实例:实现随机加载不同的CSS样式
国人开发的比较优秀的js框架:como js
Webjx收集10个最常用Ajax技术的实例教程
JavaScript教程:优化次数过多的循环
出色的jQuery导航菜单的14个英文教程
JS教程:学习笔记之JS类
JS教程:详细讲解JS节点知识
COM中获取JavaScript数组大小的代码

Javascript 中的 JavaScript静态页面值传递:URL篇


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 182 ::
收藏到网摘: n/a

本文详细介绍JavaScript静态页面值传递之URL篇

  URL篇

  能过URL进行传值.把要传递的信息接在URL上.

  Post.htm

<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);
  location.href=url;
}
</script>

 

  Read.htm

<script language="javascript" >
/*
*--------------- Read.htm -----------------
* Request[key]
* 功能:实现ASP的取得URL字符串,Request("AAA")
* 参数:key,字符串.
* 实例:alert(Request["AAA"])
*--------------- Request.htm -----------------
*/
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.abc.com/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.abc.com/index.htm?a=1&b=1&c=测试测试";
alert(str.getQuery("a"));
alert(str.getQuery("b"));
alert(str.getQuery("c"));
</script>

 

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

  缺点:值长度有限制.