西安做网站_西安网站建设公司_西安网页制作_西安网页设计_西安网站制作设计公司

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7915|回复: 0

静态页面如何传递值

[复制链接]
发表于 2012-11-1 00:54:17 | 显示全部楼层 |阅读模式
                        昨天,公司内部组织人员诊断一个网站,有位新同事发现网站的静态页面后边有参数,就直接说这是伪静态,当然,伪静态不是这个概念,这只是一般的静态页面传值而已。很多刚入行的人都认为要想传递值,需要ASP/.NET/PHP/JSP等脚本语言才能实现,其实不然,静态页面同样可以传递值,这里举三种方式:
这两窗口之间存在着关系.父窗口parent.htm打开子窗口son.htm
子窗口可以通过window.opener指向父窗口.这样可以访问父窗口的对象.
优点:取值方便.只要window.opener指向父窗口,就可以访问所有对象.
      不仅可以访问值,还可以访问父窗口的方法.值长度无限制.
缺点:两窗口要存在着关系.就是利用window.open打开的窗口.不能跨域.
      
Post.htm
<input type=textname=maintext>
<input type=buttonvalue="Open">
Read.htm
<script language="javascript">
//window.open打开的窗口.
//利用opener指向父窗口.
var parentText = window.opener.document.all.maintext.value;
alert(parentText);
</script>

利用Cookie.
Cookie是浏览器存储少量命名数据.
它与某个特定的网页或网站关联在一起.
Cookie用来给浏览器提供内存,
以便脚本和服务器程序可以在一个页面中使用另一个页面的输入数据.
优点:可以在同源内的任意网页内访问.生命期可以设置.
缺点:值长度有限制.
Post.htm
<input type="text"name="txt1">
<input type="button"onclick="setCookie('baobao',document.all.txt1.value)"value="Post">
<script language="javascript" >
function setCookie(name,value)
{

    var Days =30; //此 cookie 将被保存 30 天
    var exp =new Date();
   exp.setTime(exp.getTime() + Days*24*60*60*1000);
   document.cookie = name + "="+ escape (value) + ";expires=" +exp.toGMTString();
   location.href = "Read.htm"; //接收页面.
}
</script>

Read.htm
<script language="javascript">
function getCookie(name)
{

    var arr =document.cookie.match(new RegExp("(^|)"+name+"=([^;]*)(;|$)"));
    if(arr!=null) return unescape(arr[2]); return null;
}
alert(getCookie("baobao"));
</script>

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">

var url=location.search;
var Request = new Object();
if(url.indexOf("?")!=-1)
{
    var str =url.substr(1) //去掉?号
    strs =str.split("&");
    for(vari=0;i<strs.length;i++)
    {
       Request[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
    }
}
alert(Request["username"])
alert(Request["sex"])
</script>
                                                                       
西安网站建设 | 西安做网站 —— 剑锋所指 所向披靡!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|西安网站建设

GMT+8, 2024-4-23 15:45 , Processed in 0.045692 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表