美文网首页
实现html页面的参数传递

实现html页面的参数传递

作者: PengPengPro | 来源:发表于2017-06-13 13:46 被阅读41次

    实现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>
    

    相关文章

      网友评论

          本文标题:实现html页面的参数传递

          本文链接:https://www.haomeiwen.com/subject/awudqxtx.html