<!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>