zoukankan      html  css  js  c++  java
  • 静态页面之间如何传值

    一:JavaScript静态页面值传递之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>

     

    优点:取值方便.可以跨域.
    缺点:值长度有限制

     

    二:JavaScript静态页面值传递之Cookie

    Cookie是浏览器存储少量命名数据.

    它与某个特定的网页或网站关联在一起.

    Cookie用来给浏览器提供内存,

    以便脚本和服务器程序可以在一个页面中使用另一个页面的输入数据.

     

     

    参数传出页面Post.htm—>

     

    <input type="text" name="txt1">

    <input type="button" value="Post">

    <script language="javascript" >

    function setCookie(name,value)

    {

    /*

    *--------------- setCookie(name,value) -----------------

    * setCookie(name,value)

    功能:设置得变量name的值

    参数:name,字符串;value,字符串.

    实例:setCookie('username','baobao')

    *--------------- 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)

    {

    /*

    *--------------- getCookie(name) -----------------

    * getCookie(name)

    功能:取得变量name的值

    参数:name,字符串.

    实例:alert(getCookie("baobao"));

    *--------------- getCookie(name) -----------------

    */

      var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));

      if(arr !=null) return unescape(arr[2]); return null;

    }

    alert(getCookie("baobao"));

    </script>

     

    优点:可以在同源内的任意网页内访问.生命期可以设置.
    缺点:值长度有限制.

    三:JavaScript静态页面值传递之Window.open

    这两窗口之间存在着关系.父窗口parent.htm打开子窗口son.htm

    子窗口可以通过window.opener指向父窗口.这样可以访问父窗口的对象.

     

     

    <input type=text name=maintext>

    <input type=button value="Open">

    Read.htm

    <script language="javascript" >

    //window.open打开的窗口.

    //利用opener指向父窗口.

    var parentText = window.opener.document.all.maintext.value;

    alert(parentText);

    </script>

     

    优点:取值方便.只要window.opener指向父窗口,就可以访问所有对象.不仅可以访问值,还可以访问父窗口的方法.值长度无限制.
    缺点:两窗口要存在着关系.就是利用window.open打开的窗口.不能跨域.

  • 相关阅读:
    我的CISSP备考之路
    【CISSP备考笔记】第8章:软件开发安全
    【CISSP备考笔记】第7章:安全运营
    【CISSP备考笔记】第6章:安全评估与测试
    【CISSP备考笔记】第5章 身份与访问管理
    【CISSP备考笔记】第4章:通信与网络安全
    【CISSP备考笔记】第3章:安全工程
    【CISSP备考笔记】第2章:资产安全
    【CISSP备考笔记】第1章:安全与风险管理
    PHP后门隐藏技巧
  • 原文地址:https://www.cnblogs.com/mingjian/p/4166782.html
Copyright © 2011-2022 走看看