如题
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.   

    我试了下可以啊<!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>无标题文档</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>
      

  2.   

    1. javascript 怎么判断网页中的链接是空链接呢?
    回答:原理根据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#;
      

  3.   

    我试了下 是不行 用的是火狐测试的 
    点击test按钮 弹出消息框 state:0
    不管直接本地打开,还是放到tomcat中都是这样
    不知道你那边环境是咋样的呢!
      

  4.   

    呵呵,不过1#的代码在FF里是无法获取的,只能IE操作!
      

  5.   

    空链接的写法太多了
    比如 
    <a href= ""
    <a href=javascript:void(0)
    <a href="#"
    有时候还可能少个多个字符的
      

  6.   

    那你所指的空链接,不是<a href="">xxx</a>这样的形式吧,否则也谈不到什么跨域问题了。
    准确说你的意思是指失效链接。
    好像你是要做一个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事件进而把状态改写成“有效”,事就办完了。如果方法有效,记得东西写成发给我份看看。
      

  7.   

    你如果指的真是普通意义的空链接,那这样就小题大作了。不管多个少个字符,总体形式还是有规律的,都可以用正则检查处理。而且相对也比用AJAX或者IFRAME更有效率。