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>

  • 相关阅读:
    移动开发 Native APP、Hybrid APP和Web APP介绍
    urllib与urllib2的学习总结(python2.7.X)
    fiddler及postman讲解
    接口测试基础
    UiAutomator2.0 和1.x 的区别
    adb shell am instrument 命令详解
    GT问题记录
    HDU 2492 Ping pong (树状数组)
    CF 567C Geometric Progression
    CF 545E Paths and Trees
  • 原文地址:https://www.cnblogs.com/sunsie/p/5090922.html
Copyright © 2011-2022 走看看