跨域HTTP请求

HTML部分

<a href="http://img5.imgtn.bdimg.com/it/u=1478257864,2882073929&fm=21&gp=0.jpg" >测试1</a>
<a href="http://apis.baidu.com/apistore/weatherservice/citylist" >测试2</a>
<a href="http://apis.baidu.com/apistore/weatherservice/citylist" >测试3</a>
<a href="http://apis.baidu.com/apistore/weatherservice/citylist" >测试4</a>

JS代码部分

//跨域HTTP请求
function getScriptByCors(){
   var supportsCORS = (new XMLHttpRequest()).withCredentials !== undefined;
   //遍历页面上的所有连接
   var links = document.getElementsByTagName('a');
   for (var i = 0; i < links.length; i++) {
      var link = links[i];
      if(!link.href) continue;//跳过没有超级链接的描点
      if(link.title) continue;//跳过已经有了工具提示的链接
      //如果这是一个跨域的链接
      if(link.host !== location.host || link.protocol !== location.protocol){
             link.title = '站外链接';
             if(!supportsCORS){
               continue; //如果不支持cors 那么就直接退出
             }
      }
      if(link.addEventListener){
        //注册监听事件
        link.addEventListener('mouseover',moseMoveHandler,false);//不需要进行捕捉事件
      }else{
        //IE 事件模型
        link.attachEvent('onmouseover',moseMoveHandler);
      }


   }
   function moseMoveHandler(event){
    event = event || window.event;
    var target = event.target || event.srcElement;
    var url = target.href;
    var xhr = new XMLHttpRequest();
    xhr.open('HEAD',url);
    xhr.onreadystatechange = function(){
        if(xhr.readyState !== 4) return;
        if(xhr.status === 200){
            var type = xhr.getResponseHeader('Content-Type');
            var size = xhr.getResponseHeader('Content-Length');
            var date = xhr.getResponseHeader('Last-Modified');
            alert(type);
            //在工具提示中显示详细信息
            link.title = '类型:'+type+'\n'+'大小:'+size+'\n'+'时间:'+date+'\n';
        }else{
          //请求失败
          if(!link.title){
             link.title = 'can not fetch details :\n'+xhr.status+" "+xhr.statusText;
          }
        }
    };
    xhr.send(null);
    //移除处理程序
    if(link.removeEventListener){
       link.removeEventListener('mouseover',moseMoveHandler,false);
    }else{
      //IE事件模型
      link.detachEvent('onmouseover',moseMoveHandler);
    }
   }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值