MT写的对URL操作的两个方法

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MT</title>
</head>
<body>
    <script src="/6rooms/html/js/mootools.js"></script>
    <script>
    window.addEvent('domready',function(){
        var PRINCE = {
            enname : 'Prince Yu',
            cnname : '俞坚奇',
            age : 26,
            city : 'beijing',
            email : '114623423@qq.com',
            tel : 18758021576,
            url : 'http://snowinmay.net',
            QQ : 41953121,
            job : 'F2E',
            marital : undefined
        };
        //在domready中调用方法
        var link = myURL.createURL(PRINCE.url,PRINCE);
        var para = myURL.getURLParam(link);
        console.log(PRINCE);
        console.log(link);
        console.log(para);
    });

    //在domready外创建函数
    var myURL = {
        /*
        MT写的对URL操作的两个方法
            1.从链接中获取参数
            2.把参数拼到链接中
        */
        link : "",//生成带参数的链接

        /*
        需要完善的功能
            1.中文字符解析
            2.去掉多余的空格
        */
        createURL : function (url,param/*链接和参数*/){
            Object.each(param,function(item,key){
                var link = '&' + key + "=" + item;
                myURL.link += link;                
            })
            myURL.link = url + "?" + myURL.link.substr(1);
            return myURL.link.replace(' ','');
        },

        getURLParam : function (url/*待解析的带参数链接 window.location*/){
            var str = url.substr(url.indexOf('?')+1);
            // 需要去理解的地方1
            var ret = str.match(/\w+?\=.*?(?=($|\&))/g);
            if(!ret){return;}
            var param={},i=-1,len=ret.length,ar;
            // 需要去理解的地方2
            for(;str=ret[++i];){ar=str.split('=');param[ar[0]]=ar[1];}
            return param;
        }
    }
    
    </script>
</body>
</html>

  

posted @ 2013-12-28 17:01  snowinmay  阅读(296)  评论(0编辑  收藏  举报