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

我遇到了一个问题,我们的许多支持电话是关于我们的图片没有加载,因为用户阻止亚马逊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.

解决方法:

从要检查的域加载图像.

<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

上一篇:解决执行grunt命令报错【Cannot find module 'coffeescript/register'】


下一篇:javascript – 嵌套匿名函数中的CoffeeScript类属性