如题
1. javascript 怎么判断网页中的链接是空链接呢
2. 怎么获取其他站url的http返回状态
这个我用回调函数//指定回调方法backResponse
function backResponse() {
//响应完毕
if (request.readyState == 4) {
//如果服务端响应状态码==200
if (request.status == 200) {
//服务端的响应内容
var response = request.responseText;
alert(response);
} else {
alert("status:" + request.status);
}
}
}当open的url为本站地址时就能正确返回
但是url为其他站就不行了,比如在csdn网页中嵌入代码,想获取 http://www.google.com.hk的网页状态就不行
我是初学者,希望高手提点下怎样才能跨站访问呢!
1. javascript 怎么判断网页中的链接是空链接呢
2. 怎么获取其他站url的http返回状态
这个我用回调函数//指定回调方法backResponse
function backResponse() {
//响应完毕
if (request.readyState == 4) {
//如果服务端响应状态码==200
if (request.status == 200) {
//服务端的响应内容
var response = request.responseText;
alert(response);
} else {
alert("status:" + request.status);
}
}
}当open的url为本站地址时就能正确返回
但是url为其他站就不行了,比如在csdn网页中嵌入代码,想获取 http://www.google.com.hk的网页状态就不行
我是初学者,希望高手提点下怎样才能跨站访问呢!
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="javascript">
//定义XMLHttp对象
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}function chk() {
var url = document.getElementById("url").value;
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}function updatePage() {
if (xmlHttp.readyState < 4) {
document.getElementById("msg").innerHTML ="loading...";
}
if (xmlHttp.readyState == 4) {
document.getElementById("msg").innerHTML= "";
if (xmlHttp.status == 200) {
//服务端的响应内容
var response = xmlHttp.responseText;
alert(response);
} else {
alert("status:" + xmlHttp.status);
}
}
}//document.ready(function(){
// document.getElementById("uname").onblur = chkUname();
//}); </script>
</head><body>
<input type="text" name="url" id="url" value="http://www.baidu.com" /><input type="button" value="test" onclick="chk()" />
<span id="msg"></span>
</body>
</html>
回答:原理根据URL特征值进行判断,IE和火狐处理机制不同,分开区别!<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<script type="text/javascript">
window.onload=function(){
var a=document.getElementsByTagName("a");
for(var i=0;i<a.length;i++)
{
if(/MSIE/i.test(window.navigator.userAgent))
{
var reg=/((.*?)+\/)?\w+\.(.*?)+$/ig;
reg.exec(window.location);
if(a[i].getAttribute('href')==RegExp.$1){alert("第"+(i+1)+"个A标签为空链接!");}
}
else
{
if(a[i].getAttribute('href')==""){alert("第"+(i+1)+"个A标签为空链接!");}
}
}
}
</script>
</head>
<body>
1 <a href="http://www.baidu.com">baidu</a><br>
2 <a href="../file/upload">baidu</a><br>
3 <a href="">baidu</a><br>
4 <a href="/href/baidu.com">baidu</a><br>
5 <a href="">baidu</a><br>
6 <a href="file/">baidu</a><br>
</body></html>
2. 怎么获取其他站url的http返回状态
回答:如1#;
点击test按钮 弹出消息框 state:0
不管直接本地打开,还是放到tomcat中都是这样
不知道你那边环境是咋样的呢!
比如
<a href= ""
<a href=javascript:void(0)
<a href="#"
有时候还可能少个多个字符的
准确说你的意思是指失效链接。
好像你是要做一个SEO工具吧。对你所说情况,可以用隐藏的iframe代替AJAX。就是在注入JS中创建一个隐藏的IFRAME,加上onload事件。
如果发生onload事件就说明链接有效,能够加载。
如果改变src为目标链接地址后,没有发生onload事件,则目标地址就是失效链接。function theforever_csdn_测试URL(u){
在浮动层里生成关于U的报告位置,给状态是否有效的部分加个ID或者能保证可以找到它就可以,先一律显示为“无效链接”;
iframe.sid="存储上面给状态显示部分设置的ID或者INDEX"
iframe.src=u;
}在iframe的onload里:取iframe.sid,由它对应到链接的状态显示部分,将它的值设为“有效”。这样,所有链接开始初始化为无效链接,而有效的链接将会由于在IFRAME里得到加载激发onload事件进而把状态改写成“有效”,事就办完了。如果方法有效,记得东西写成发给我份看看。