zoukankan      html  css  js  c++  java
  • js原生的url操作函数,及使用方法。(附:下边还有jquery对url里的中文解码函数)

    js原生的url操作函数,完善的。

    /*****************************/
    /*        动态修改url        */
    /*****************************/
    var LG=(function(lg){
        var objURL=function(url){
            this.ourl=url||window.location.href;
            this.href="";//?前面部分
            this.params={};//url参数对象
            this.jing="";//#及后面部分
            this.init();
     
        }
        
        //分析url,得到?前面存入this.href,参数解析为this.params对象,#号及后面存入this.jing
        objURL.prototype.init=function(){
        var str=this.ourl;
        var index=str.indexOf("#");
        if(index>0){
        this.jing=str.substr(index);
        str=str.substring(0,index);
        }
        index=str.indexOf("?");
        if(index>0){
        this.href=str.substring(0,index);
        str=str.substr(index+1);
        var parts=str.split("&");
        for(var i=0;i<parts.length;i++){
        var kv=parts[i].split("=");
        this.params[kv[0]]=kv[1];
        }
        }
        else{
        this.href=this.ourl;
        this.params={};
        }
        }
        //只是修改this.params
        objURL.prototype.set=function(key,val){
        this.params[key]=val;
        }
        //只是设置this.params
        objURL.prototype.remove=function(key){
        this.params[key]=undefined;
        }
        //根据三部分组成操作后的url
        objURL.prototype.url=function(){
        var strurl=this.href;
        var objps=[];//这里用数组组织,再做join操作
        for(var k in this.params){
        if(this.params[k]){
        objps.push(k+"="+this.params[k]);
        }
        }
        if(objps.length>0){
        strurl+="?"+objps.join("&");
        }
        if(this.jing.length>0){
        strurl+=this.jing;
        }
        return strurl;
        }
        //得到参数值
        objURL.prototype.get=function(key){
        return this.params[key];
        } 
        lg.URL=objURL;
        return lg;
    }(LG||{}));

    应用上面的URL操作函数,获取url及其参数,并在使用前对rul中的中文用jquery自带函数解码。

    最后进行赋值等操作。

    $(document).ready(function(){ 
        var myurl=new LG.URL(window.location.href);
    
        //获取url参数,解码后赋值到select中,实现select防刷新
        $("#yewu").val(decodeURIComponent(myurl.get("yewu")));
        $("#fuwu").val(decodeURIComponent(myurl.get("fuwu")));
        $("#leixing").val(decodeURIComponent(myurl.get("leixing")));
        
        $('.casesel').change(function(){ 
            var p1=$('#yewu').val();//yewu的值 
            var p2=$('#fuwu').val();//fuwu的值 
            var p3=$('#leixing').val();//leixing的值 
            window.location.href="/case/?yewu="+p1+"&fuwu="+p2+"&leixing="+p3;//页面跳转并传参 
        });
    });        
  • 相关阅读:
    完美解决 向UILable 文字最后插入N张图片,支持向限制行数的UILable 最后一行插入,多余文字显示...
    构建自己的NSZombie
    如何以代码形式插入断点
    根据坐标点显示地图显示范围(高德地图)
    ios7 UITableView 分割线在 使用selectedBackgroundView 选中时有些不显示
    runtime MethodSwizzle 实践之 奇怪crash : [UIKeyboardLayoutStar release]: message sent to deallocated instance
    Jmeter(十一)
    Jmeter(十)
    Jmeter(九)
    Jmeter(八)
  • 原文地址:https://www.cnblogs.com/woodk/p/4621742.html
Copyright © 2011-2022 走看看