测试是否可以从Web浏览器访问URL,即确保不被代理服务器阻止

pla*_*nes 9 html javascript scripting proxy

我在mywebsite.com上为我的网站服务.我在flickr上托管图像,所以所有图像都通过获取flickr的请求加载到用户的浏览器中.我的许多网站用户从公司网络访问mywebsite.com,这阻止了对flickr.com的访问.这意味着用户会得到非常烦人的空白占位符而不是图像.我在Facebook按钮上遇到了同样的问题.这使得我的网站对这些用户看起来非常不吸引人.

有没有办法我可以运行客户端脚本,检查flickr.com,facebook.com等是否可访问.如果不是,我可以更改图像的href属性以从备用源加载,或者用标准图像替换,以解释其网络阻止访问.我也可以删除Facebook之类的按钮.

我认为XML http请求可以解决这个问题,但是我认为我遇到了跨域问题.我想我也可以设置代理服务图像,但我不想这样做; 这个想法是flickr带来了带宽.

TLDR:如何使用客户端技术确定是否可以从用户的浏览器访问flickr.com.

ale*_*lex 9

你可以尝试这个......

var image = new Image();

image.onerror = function() {

   var images = document
                 .getElementById('flicker-images')
                 .getElementsByTagName('img');

   for (var i = 0, imagesLength = images.length; i < imagesLength; i++) {
        images[i].src = 'images/flickr_is_blocked.gif';
   }

};

image.src = 'http://flickr.com/favicon.ico';
Run Code Online (Sandbox Code Playgroud)

哈基,但它似乎工作.然而,它依赖于favicon.ico404ing意味着主站点.

jsFiddle.