javascript如何最有效的判断一个链接是否有效?

我想判断一个链接是否有效,然后再确定是否要链接到该页面。c#实现也可以。请教……期待ing……... 我想判断一个链接是否有效,然后再确定是否要链接到该页面。c#实现也可以。请教……期待ing…… 展开
 我来答
鼠自出关门4633
2010-02-23 · TA获得超过200个赞
知道答主
回答量:61
采纳率:0%
帮助的人:54.9万
展开全部
先mark

直接使用XMLHttpReuquest对象实现这个会有兼容性问题。
那些直接使用XMLHttpReuquest对象来完成这个功能的,基本上都是没掌握好XMLHttpReuquest对象的人。

这个功能的实现需要客户端和服务端配合才行,大概原理就是:
1.发送get请求给自己的服务器端,提交需要检查的url向南喜
2.接收到url后,服务器端发送对目标url的请求
3.服务器端获取头部信息
4.把获取到的头部信息给客户端(json或者纯文本之类的都可以)
5.客户端接受到头部信息,然后处理。

要都写出来那代码会很长的……
难点就在基于XMLHttpReuquest对象的ajax有同源策略的限制,而其他方式的ajax又无法获取头部信息。所以需要通过服务器端来配合才行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a435633
2010-02-23 · TA获得超过1234个赞
知道大有可为答主
回答量:1018
采纳率:0%
帮助的人:0
展开全部
用 jQuery 的话,有现成的插件:

http://plugins.jquery.com/project/linkchecker

Demo 页面:
http://sidashin.ru/linkchecker/

代码只要这样几句:

<script src="jquery.js"></script>
<script src="jquery.linkchecker.js"></script>
<script type="text/javascript">
$(document).ready( function() {
$.linkChecker({query : 'a', linksAtOnce : 2});
});
</script>

补充:
如果针对一个具体的URL,光用jQuery,不需要插件可以这样:

$.ajax({
url: 'http://some.url.com',
type: 'GET',
complete: function(response) {
if(response.status == 200) {
alert('有效');
} else {
alert('无效');
}
}
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Proc_871113
2010-02-22 · TA获得超过549个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:167万
展开全部
<script language="javascript">
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.onreadystatechange = getReady;
xmlhttp.Open("POST","你的网址",false);
xmlhttp.Send();

function getReady(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200)
{
alert("有效");
}
else
{

alert("无效");
}

}
}
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-02-22
展开全部
楼上的回答提示没有权限。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94f02eb
2010-02-22 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4377万
展开全部
实现的代码,我已经发到你的HI上了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式