zoukankan      html  css  js  c++  java
  • 两个静态页面之间值传递方式

    实现html页面的参数传递

    方法一:
    下面是javascrīpt的一种实现方法, 这个函数是通过window.location.href中的分割符获得各个参数。

    有了这个函数,就可以在页面之间传递参数了。

    /*
    *函数功能:从href获得参数
    *sHref:   http://www.artfh.com/arg.htm?arg1=d&arg2=re
    *sArgName:arg1, arg2
    *return:    the value of arg. d, re
    */
    function GetArgsFromHref(sHref, sArgName)
    {
          var args    = sHref.split("?");
          var retval = "";
       
          if(args[0] == sHref) /*参数为空*/
          {
               return retval; /*无需做任何处理*/
          } 
          var str = args[1];
          args = str.split("&");
          for(var i = 0; i < args.length; i ++)
          {
              str = args[i];
              var arg = str.split("=");
              if(arg.length <= 1) continue;
              if(arg[0] == sArgName) retval = arg[1];
          }
          return retval;
    }

    方法二:
    html地址传递参数进行其他事情.
    <scrīpt>
    /* 用途: 接收地直栏参数 取id=1 根据ID的值 */
    urlinfo=window.location.href; //获取当前页面的url
    len=urlinfo.length;//获取url的长度
    offset=urlinfo.indexOf("?");//设置参数字符串开始的位置
    newsidinfo=urlinfo.substr(offset,len)//取出参数字符串 这里会获得类似“id=1”这样的字符串
    newsids=newsidinfo.split("=");//对获得的参数字符串按照“=”进行分割
    newsid=newsids[1];//得到参数值
    newsname=newsids[0];//得到参数名字
    </scrīpt>

    方法三:
    <SCRIPT LANGUAGE="JavaScript">
    function getvalue(name){
        var str=window.location.search;   //location.search是从当前URL的?号开始的字符串 例如:http://www.51job.com/viewthread.jsp?tid=22720 它的search就是?

    tid=22720

        if (str.indexOf(name)!=-1){          
            var pos_start=str.indexOf(name)+name.length+1;
            var pos_end=str.indexOf("&",pos_start);
            if (pos_end==-1){
                alert( str.substring(pos_start));
            }else{
                alert("对不起这个值不存在!");
            }
        }

    </SCRIPT>

    方法四:
    做中英转换的时候,要准确的获取参数并取出,所以做了一个简单的html中用js获取当取地址栏的一个Object。
    里面有三个方法:
    1、request.QueryString("参数")//获取指定参数,返回字符串;
    2、request.QueryStrings();//获取全部参数,并返回数组;
    3、request.setQuery("参数","参数的值");//如果当前地址栏有此参数,那么将更新此参数,否则返回一个新的地址栏参数字符串。
    例如:
    当前地址栏参数字符串为:?name=a&site=never_online
    alert(request.setQuery("name","blueDestiny"))
    如果地址栏参数中有"name",那么返回?name=blueDestiny&site=never_online
    setQuery方法有自动追加参数的功能。如:
    当前地址栏参数字符串为:?site=never_online
    alert(request.setQuery("name","blueDestiny"))
    则返回?site=never_online&name=blueDestiny
    同理,如果地址栏没有参数,也会自动追加参数
    alert(request.setQuery("name","blueDestiny"))
    返回?name=blueDestiny
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    // author: never-online
    // web: never-online.net
    var request = {
    QueryString : function(val) {
    var uri = window.location.search;
    var re = new RegExp("" +val+ "=([^&?]*)", "ig");
    return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null);
    },
    QueryStrings : function() {
    var uri = window.location.search;
    var re = /w*=([^&?]*)/ig;
    var retval=[];
    while ((arr = re.exec(uri)) != null)
    retval.push(arr[0]);
    return retval;
    },
    setQuery : function(val1, val2) {
    var a = this.QueryStrings();
    var retval = "";
    var seted = false;
    var re = new RegExp("^" +val1+ "=([^&?]*)$", "ig");
    for(var i=0; i<a.length; i++) {
    if (re.test(a[i])) {
    seted = true;
    a[i] = val1 +"="+ val2;
    }
    }
    retval = a.join("&");
    return "?" +retval+ (seted ? "" : (retval ? "&" : "") +val1+ "=" +val2);
    }
    }
    alert(request.setQuery("e","b"))
    //-->
    </SCRIPT>

  • 相关阅读:
    LeetCode 461. Hamming Distance
    LeetCode 442. Find All Duplicates in an Array
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode Find the Difference
    LeetCode 415. Add Strings
    LeetCode 445. Add Two Numbers II
    LeetCode 438. Find All Anagrams in a String
    LeetCode 463. Island Perimeter
    LeetCode 362. Design Hit Counter
    LeetCode 359. Logger Rate Limiter
  • 原文地址:https://www.cnblogs.com/weiyi1314/p/6482457.html
Copyright © 2011-2022 走看看