52,797
社区成员
发帖
与我相关
我的任务
分享
String.prototype.trim=function(){return this.replace(/$\s*|\s*$/g,'');}
var Showbo={author:'showbo'};
//获取json对象
Showbo.getJson=function(v){if(typeof(v)=='string')return eval('('+v+')');else return v;}
//根据id获取对象
Showbo.$=function(Id){if('object'==typeof(Id))return Id;else if('string'==typeof(Id))return document.getElementById(Id);else return null;}
Showbo.IsIE=!!document.all;
//扩展IE下的XMLHttpRequest
if(Showbo.IsIE)window.XMLHttpRequest=function(){
var acX=['msxml2.xmlhttp.5.0','msxml2.xmlhttp.4.0','msxml2.xmlhttp.3.0','msxml2.xmlhttp','microsoft.xmlhttp'],Xhr;
for(var i=0;itry{Xhr=new ActiveXObject(acX[i]);return Xhr;}catch(e){}
return false;
}
//ajax应用池
Showbo.Ajax={
pools:[]//存储ajax对象的数组
,getObject:function(){//从数组中获取ajax对象,如果未返回则新建一个ajax对象
for(var i=0;i<this.pools.length;i++)
if(this.pools[i].readyState==0||this.pools[i].readyState==4)return this.pools[i];
this.pools[this.pools.length]=new XMLHttpRequest();
return this.pools[this.pools.length-1];
}
,send:function(cfg){/*cfg示例
{
url:'请求的页面'
,params:'键值对,注意不是json对象'
,method:'post/get,如果为指定则默认为get'
,success:成功时的回调函数
,failure:失败时的回调函数
,otherParams:提供给回调函数的其他参数,可以为json对象
}
成功或者失败的回调函数参数为 (当前的xhr对象,配置文件的中的otherParams)
*/
if(!cfg||!cfg.url)throw("未设置配置文件!");
var method=cfg.method,asy="boolean"==typeof(cfg.asy)?cfg.asy:true;
if(!method||method!="post")method="get";
if(method.toLocaleLowerCase()=='get'){
var _dc=new Date().getTime();//加时间戳防止ie浏览器下的缓存
cfg.params=cfg.params?cfg.params+'&_dc='+_dc:'_dc='+_dc;
if(cfg.url.indexOf("?")!=-1)cfg.url+="&"+cfg.params;
else cfg.url+="?"+cfg.params;cfg.params=null;
}
else if(!cfg.params)cfg.params='';
var o=this.getObject();
if(!o)throw("未能创建ajax对象!");
o.open(method,cfg.url,asy);
if(method.toLocaleLowerCase()=='post')o.setRequestHeader("content-type","application/x-www-form-urlencoded");
o.send(cfg.params);
o.onreadystatechange=function(){
if(o.readyState==4){
if(o.status==200||o.status==0){
if("function"==typeof(cfg.success))cfg.success(o,cfg.otherParams);
}
else if("function"==typeof(cfg.failure))cfg.failure(o,cfg.otherParams);
}
}
}
}
<!!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>简易alexa排名,google pr查询</title>
<meta name="Keywords" runat="server" id="metaKey" content="ajax查询,alexa排名,google page rank 查询"/>
<meta name="Description" runat="server" id="metaDes" content="ajax查询,alexa排名,google page rank 查询"/>
<script type="text/javascript" src="ajax.js"></script>
<style type="text/css">
body{font-size:12px;}
div{line-height:20px;margin-top:10px;}
div span{float:left;}
div span.prm{width:40px;height:5px;border:solid 1px #000000;line-height:5px;overflow:hidden;margin-top:7px;}
div span.prm span{background:#5eaa5e;}
</style>
</head>
<body>
<h1>简易alexa排名,google pr查询</h1>
请输入要查询的域名:<input type="text" style="width:300px" id="Url" value="coding123.net" onkeydown="if(event.keyCode==13)load();"/><input type="button" onclick="load()" value="查询"/>
<br ><div id="divAl"></div>
<div id="divGPR"></div>
<script type="text/javascript">
function getGPR(n){
if(!/^[0-9]$|^10$/.test(n))n=0;
else n=parseInt(n,10);
return '<span>google PR:</span><span class="prm" title="'+n+'"><span style="width:'+n+'0%">'+(n==0?'':' ')+'</span></span>';
}
function ajaxHandler(xhr,Id){Showbo.$(Id).innerHTML=Id=="divGPR"?getGPR(xhr.responseText.trim()):'Alexa排名为:'+xhr.responseText;}
function load(){
var u=Showbo.$('Url'),v=u.value.trim();
if(v==''){alert('请输入要查询的域名!');u.select();return false;}
Showbo.$('divAl').innerHTML='<img src="loading.gif"/>正在加载Alexa排名...';
Showbo.$('divGPR').innerHTML='<img src="loading.gif"/>正在加载Google PR....';
//修改下面请求的页面既可实现asp版本
Showbo.Ajax.send({url:'alexa.ashx',method:'post',params:'u='+escape(v),otherParams:'divAl',success:ajaxHandler,failure:ajaxHandler});
Showbo.Ajax.send({url:'googlepr.ashx',method:'post',params:'u='+escape(v),otherParams:'divGPR',success:ajaxHandler,failure:ajaxHandler});
}
</script>
</body>
</html>
<%@ WebHandler Language="C#" Class="alexa" %>
using System;
using System.Web;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
public class alexa : IHttpHandler {
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
string u = (context.Request.Form["u"] + "").Trim(), rank = "NaN";
if (u != "")
{
WebClient wc = new WebClient();
string xmlString = wc.DownloadString("http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&"
+ "wid=12206&act=00000000000&ss=1680x1050&bw=964&t=0&ttl=35371&vis=1&rq=4&url="+u);
wc.Dispose();
Match m = Regex.Match(xmlString, "<POPULARITY URL=\"\\s*.+?\\s*\" TEXT=\"\\s*(\\d+)\\s*\"/>"
, RegexOptions.IgnoreCase | RegexOptions.Compiled);
if (m.Groups[1].Value != "") rank = m.Groups[1].Value;
}
context.Response.Write(rank);
}
public bool IsReusable {
get {
return false;
}
}
}
<%@ WebHandler Language="C#" Class="googlepr" %>
using System;
using System.Web;
using System.Net;
public class googlepr : IHttpHandler {
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
string u = (context.Request.Form["u"] + "").Trim(), rank = "0";
if (u != "")
{
WebClient wc = new WebClient();
string pr = wc.DownloadString("http://www.google.cn/search?client=navclient-auto&ch=6-1385476800&features=Rank"
+ "&q=info:" + u);
wc.Dispose();
string[] rs = pr.Split(':');
rank = rs[rs.Length - 1];
}
context.Response.Write(rank);
}
public bool IsReusable
{
get
{
return false;
}
}
}
<%@language="vbscript" codepage="65001"%>
<%
Option Explicit
'防止asp使用utf-8编码时中文出现乱码
Session.CodePage=65001
Response.CharSet="utf-8"
Dim u,xhr,rank
u=trim(Request.Form("u")&""):rank="NaN"
If u<>"" Then
Set xhr=Server.CreateObject"Micr"&"osoft.XML"&"HTTP")'防止被杀毒软件干掉
xhr.open "get","http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&"&_
"wid=12206&act=00000000000&ss=1680x1050&bw=964&t=0&ttl=35371&vis=1&rq=4&url="&u,False
xhr.send
Dim xmlString,r
xmlString=xhr.responseText'获取返回的xml字符串
Set xhr=Nothing
Set r=New RegExp
r.Global=True
r.IgnoreCase=True
r.Pattern="<POPULARITY URL=""\s*.+?\s*"" TEXT=""\s*(\d+)\s*""/>"
Set ms=r.Execute(xmlString)
For Each m In ms
rank=m.submatches(0):Exit For
Next
Set r=Nothing
End If
Response.Write rank
%>
<%@language="vbscript" codepage="65001"%>
<%
Option Explicit
'防止asp使用utf-8编码时中文出现乱码
Session.CodePage=65001
Response.CharSet="utf-8"
Dim u,xhr,pr
u=trim(Request.Form("u")&""):pr="0"
If u<>"" Then'
Set xhr=Server.CreateObject("Micr"&"osoft.XML"&"HTTP")'防止被杀毒软件干掉
xhr.open "get","http://www.google.cn/search?client=navclient-auto&ch=6-1385476800&"&_
"features=Rank&q=info:"&u,False
xhr.send
Dim str,rs
str=xhr.responseText'获取返回的xml字符串
Set xhr=Nothing
rs=Split(str,":")
pr=rs(UBound(rs))
End If
Response.Write pr
%>
<%@ WebHandler Language="C#" Class="alexa" %>
using System;
using System.Web;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
public class alexa : IHttpHandler {
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
string u = (context.Request.Form["u"] + "").Trim(), rank = "NaN";
if (u != "")
{
WebClient wc = new WebClient();
string xmlString = wc.DownloadString("http://www.alexa.com/siteinfo/"+u);
wc.Dispose();
Match m = Regex.Match(xmlString, "<div class=\"data\\s+up\">([\\d,]+)"
, RegexOptions.IgnoreCase | RegexOptions.Compiled);
if (m.Groups[1].Value != "") rank = m.Groups[1].Value;
}
context.Response.Write(rank);
}
public bool IsReusable {
get {
return false;
}
}
}