检查用户是否阻止第三方域

时间:2012-06-11 18:53:47

标签: javascript jquery coffeescript client-side blocking

我遇到了一个问题,我们的许多支持电话是关于我们的图片未加载,因为用户阻止了亚马逊s3或类似的第三方服务。我使用第三方服务来托管图片,视频和一些JavaScript。有没有办法通过javascript检测客户端是否阻止域,以便我们显示消息而不是让用户联系支持?

$.ajax 'http://aws.amazon.com/s3/',
  type: 'GET',
  dataType: 'html'
  complete: (e, xhr, settings) ->
    if e.status == 200
      console.log "Not Blocking S3"
    else
      console.log "Blocking S3"

根据评论,我尝试了它,但它仍然无效。当我没有阻止时它会返回阻塞。

上面的示例coffeescript代码不起作用,因为我认为发生了安全性错误,因为它在不同的域上执行ajax。 Firebug以红色显示请求,但是说200. e.status返回0。

1 个答案:

答案 0 :(得分:7)

从您要检查的域中加载图像。

<img id="checkImg" src="https://www.google.com/images/srpr/logo3w.pngAAA" />

只是一个常规的图片代码(请注意最后的AAA,使其工作)。然后你可以检查图像的宽度,看它是否加载。

if(document.getElementById('checkImg').clientWidth != 275)
    alert("Error")

Google徽标的宽度为275像素,但错误图片(至少在Chrome中)只有18像素。因此,如果图像宽度不是275px,我知道它没有加载。

Demo

相关问题