我这个方法要用到xmlhttp组件,速度不快,客户端支持可能不是很好:
<script language="JavaScript">
<!--
function testurl(url)
{
if(!url) return false;
var xml = new ActiveXObject("Microsoft.XMLHTTP");
xml.open("GET",url,false);
xml.send();
if(xml.status == 200) return true;
else return false;
}alert(testurl("http://www.cjol.com"));
alert(testurl("http://www.csdn.net"));
//-->
</script>

解决方案 »

  1.   

    我想了两个办法,
    但是发现IE6加强了安全检查,
    不允许这么干方法1.
    使用download行为,
    获取这个URL的代码,
    如果获得了就说明是正确的,
    没有获得就说明是错误的示例代码如下:
    <span ID="oDownload" STYLE="behavior:url(#default#download)" ></span>
    <script language="JavaScript">
    var urlValid = false
    function onDownload(data){
    urlValid = true
    }
    function testURL(url){
    oDownload.startDownload(url,onDownload)
    setTimeout("alert(urlValid)",1000)
    }window.onload = function(){
    testURL("noname3.html")
    }
    </script>
    如果存在的话会alert(true)但是download行为只允许下载同样domain的文件,
    也就是说,只能检查同一站点下的文件存在与否失败
    方法2.
    使用iframe,
    转到这个页面,
    再检查iframe的location
    如果有的话就是正确 的,
    不然就是错误的.
    这个方法不能检查http://www.a.com/cc.exe之类的会下载的文件代码
    <script language="JavaScript">
    var urlValid = false
    window.onload = function(){
    window_onLoad("http://www.vizo.org/")
    }function window_onLoad(url){
    document.all.ifrm.src = url
    setTimeout("checkUrlValid(\""+url+"\")",1000)
    }function checkUrlValid(url){
    alert(document.frames("ifrm").location.href != "about:blank" )
    }
    </script>
    <iframe id=ifrm ></iframe>
    同样的原因,
    不能检查另一个domain的文件
    我做了测试,
    检查同一个domain下相同协议的文件是可行的,
    不过这是个异步的方法,
    呵呵