chen106106 发表于 2013-1-29 08:46:24

javascript 解析浏览器参数信息

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<script type="text/javascript">
<!--

window.onload = function(){

var myURL = parseUrl('http://abc.com:8080/dir/index.html?id=255&m=hello#top');

//alert(myURL.file);   // = 'index.html'
//alert(myURL.host);   // = 'abc.com'
myURL.search;    // = '?id=255&m=hello'
myURL.params;   // = Object = { id: 255, m: hello }
myURL.path;   // = '/dir/index.html'
myURL.segments; // = Array = ['dir', 'index.html']
myURL.port;   // = '8080'
myURL.protocol; // = 'http'
myURL.source;   // = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'
var file = _$("file");
file.innerHTML = myURL.file;
var host = _$("host");
host.innerHTML = myURL.host;
var port = _$("port");
port.innerHTML = myURL.port;
var source = _$("source");
source.innerHTML = myURL.source;
var search = _$("search");
search.innerHTML = myURL.search;
var params = _$("params");
params.innerHTML = objToString(myURL.params);
var path = _$("path");
path.innerHTML = myURL.path;
alert(objectToString(myURL))
}

function _$(id){
return document.getElementById(id);
}
function parseUrl(url){

var a= document.createElement("a");

a.href = url;
return {
//源连接地址
source:url,
//协议
protocol:a.protocol.replace(":",""),
host: a.host,
//端口
port: a.port,
file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,'']),
//查询字符串
search: a.search,
//参数
params: (function(){

var ret = {},
seg = a.search.replace(/^\?/,'').split('&'),
len = seg.length, i = 0, s;
for (;i<len;i++) {
if (!seg) { continue; }
s = seg.split('=');
ret] = s;
}
return ret;
})(),
file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,'']),
hash: a.hash.replace('#',''),
path: a.pathname.replace(/^([^\/])/,'/$1'),
relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,'']),
segments: a.pathname.replace(/^\//,'').split('/')


};
}

function objToString (obj) {
    var str = '', a = [], t;

    for (var p in obj) {
      if (obj.hasOwnProperty(p)) {
str += p + ':' + obj + ',';
      }
    }
    return str;
}

//-->
</script>
</head>

<body>
    <div>
<p>javascript 解析浏览器路径参数</p>
<h4>原来的url:'http://abc.com:8080/dir/index.html?id=255&m=hello#top'</h4>
<h4>解析后</h4>
<p>
<div>file:<span id="file"><span></div>
<div>host:<span id="host"></span></div>
<div>search:<span id="search"></span></div>
<div>params:<span id="params"></span></div>
<div>path:<span id="path"></span></div>
<div>port:<span id="port"></span></div>
<div>protocol:<span id="protocol"></span></div>
<div>source:<span id="source"></span></div>

</p>
<div>
</body>
</html>
页: [1]
查看完整版本: javascript 解析浏览器参数信息