像中国这样的国家正在阻止Facebook / Twitter。如何使用JavaScript检查网站是否无法访问?
更新
我在网页上添加了“分享到Facebook”按钮。 50%的访客来自中国,50%来自中国以外。
对于那些中国游客来说,他们永远不会看到Facebook按钮,因为它被阻止了。如果我检测到Facebook被阻止,我想使用$.hide()
或$.empty()
删除相关的HTML。我怎么能这样做?
答案 0 :(得分:3)
您可以检查加载facebook SDK是否在中国(//connect.facebook.net/en_UK/all.js
)
如果是这种情况,那么你可以这样做:
$.getScript('//connect.facebook.net/en_UK/all.js')
.success(function(){
// do something if facebook is available
});
您需要注意,因为如果要对fail
案例进行回调,则需要定义超时。我需要稍后检查正确的设置,但目前我没有时间。
修改强>
根据funkybro
的评论,最好做一个JSONP请求。加载API会注入一些您可能不需要的代码。
所以请求例如:
$.getJSON('https://graph.facebook.com/feed?callback=?')
.success(function(){
// do something if facebook is available
});
请求将包含失败代码,因为您未在图形节点提供,但知道您从Facebook收到错误消息意味着客户端可以访问该错误消息。
答案 1 :(得分:0)
像这样使用jQuery.get:
$.get("http://facebook.com").fail(function() {
$(...).hide()
}).done(function() {
$(...).show()
})
请注意,这是一个跨站点请求,除非您禁用该浏览器功能,否则会因安全原因而失败。
如果您无法做到这一点,我建议您使用GeoIP或类似技术来确定用户来源。