Javascript 检测用户是否可以看到类似facebook的按钮

Javascript 检测用户是否可以看到类似facebook的按钮,javascript,facebook,Javascript,Facebook,正如你所知,Facebook在许多国家都是经过过滤的,如果我们在我们的页面中添加“喜欢”按钮,他们将看到来自互联网提供商的“拒绝访问”消息,而不是“喜欢”按钮。所以问题是,我能检测到用户是否能看到Facebook吗?因此,如果用户可以访问Facebook,并且没有经过过滤,我只会显示Like按钮 谢谢我想您可以在类似的按钮iframe上设置一个非常小的宽度和高度,刚好够按钮本身,并且希望任何“拒绝访问”消息都有足够的填充,在iframe的视口中不可见!:) 另一种选择可能是“ping”Faceb

正如你所知,Facebook在许多国家都是经过过滤的,如果我们在我们的页面中添加“喜欢”按钮,他们将看到来自互联网提供商的“拒绝访问”消息,而不是“喜欢”按钮。所以问题是,我能检测到用户是否能看到Facebook吗?因此,如果用户可以访问Facebook,并且没有经过过滤,我只会显示Like按钮


谢谢

我想您可以在类似的按钮iframe上设置一个非常小的宽度和高度,刚好够按钮本身,并且希望任何“拒绝访问”消息都有足够的填充,在iframe的视口中不可见!:)


另一种选择可能是“ping”Facebook,比如发出AJAX请求并查看响应是什么希望来自ISP的任何被阻止的响应都会包含HTTP 403状态码,或者一些合理的信息,但如果不是这样,您必须清除返回的HTML并尝试自己确定您看到的是Facebook还是错误页面,然后决定是否渲染like按钮。

我想您可以在like按钮iframe上设置一个非常小的宽度和高度,刚好够按钮本身,并希望任何“拒绝访问”消息都有足够的填充,在iframe的视口中不可见!:)


另一种选择可能是“ping”Facebook,比如发出AJAX请求并查看响应是什么希望来自ISP的任何被阻止的响应都会包含HTTP 403状态码,或者一些合理的信息,但如果不是这样,您必须清除返回的HTML并尝试自己确定您看到的是Facebook还是错误页面,然后决定是否渲染like按钮。

使用Facebook javascript库:

并使用FB.getLoginStatus(…)函数检查并决定您希望应用程序执行的操作。如果他们已登录或未登录(
已连接
未授权
),则他们已登录facebook,您可以显示“喜欢”按钮。如果状态为未知,则他们尚未登录,但可以查看facebook

如果facebook脚本没有加载或返回任何值,那么facebook可能被阻止,您不想显示like按钮


注意:您还需要使用facebook创建一个应用程序id,以便将您的javascript链接到。

使用facebook javascript库,网址为:

并使用FB.getLoginStatus(…)函数检查并决定您希望应用程序执行的操作。如果他们已登录或未登录(
已连接
未授权
),则他们已登录facebook,您可以显示“喜欢”按钮。如果状态为未知,则他们尚未登录,但可以查看facebook

如果facebook脚本没有加载或返回任何值,那么facebook可能被阻止,您不想显示like按钮


注意:您还需要使用facebook创建一个应用程序id,将您的javascript链接到。

我的建议是使用类似或的服务。在您的国家/地区,它们很有可能不会被阻止(您可以在使用VPN和不使用VPN之前对其进行测试),它们为您提供了一个优势,即您的用户可以在其他门户网站上与朋友共享您的网站


对于其他人来说,知道这些服务在Facebook被屏蔽的国家是否可用当然很有意思,因为他们中的许多人自己无法测试这些服务。

我的建议是使用像或这样的服务。在您的国家/地区,它们很有可能不会被阻止(您可以在使用VPN和不使用VPN之前对其进行测试),它们为您提供了一个优势,即您的用户可以在其他门户网站上与朋友共享您的网站


对于其他人来说,了解这些服务在Facebook被屏蔽的国家是否可用当然很有趣,因为他们中的许多人自己无法测试这些服务。

通过加载
favicon.ico
来测试域名
www.Facebook.com
是否可以访问,如果可以,请显示iframe:

<iframe src="http://www.facebook.com/plugins/like.php" id="fbfm" style="display:none">
</iframe>

<script>
var fbicon = new Image();
fbicon.onload = function() {
  document.getElementById("fbfm").style.display = "";
};
fbicon.src = "http://www.facebook.com/favicon.ico?" + Math.random();
</script>

var fbicon=新图像();
fbicon.onload=函数(){
document.getElementById(“fbfm”).style.display=“”;
};
fbicon.src=”http://www.facebook.com/favicon.ico?“+Math.random();

通过加载
favicon.ico
测试域
www.facebook.com
是否可访问,如果可以,显示iframe:

<iframe src="http://www.facebook.com/plugins/like.php" id="fbfm" style="display:none">
</iframe>

<script>
var fbicon = new Image();
fbicon.onload = function() {
  document.getElementById("fbfm").style.display = "";
};
fbicon.src = "http://www.facebook.com/favicon.ico?" + Math.random();
</script>

var fbicon=新图像();
fbicon.onload=函数(){
document.getElementById(“fbfm”).style.display=“”;
};
fbicon.src=”http://www.facebook.com/favicon.ico?“+Math.random();

用户真的看到了“拒绝访问”消息而不是没有看到按钮吗?你用什么代码来显示按钮?是的,问题是我所在的国家已经过滤了facebook,当我使用VPN连接到我的网站时,我可以看到“喜欢”按钮,它工作正常,许多人喜欢我的页面使用“喜欢”按钮,但当我没有连接到VPN时,我会看到“拒绝访问”来自我的互联网提供商的消息。我使用的是类似于facebook的按钮生成器:用户真的看到了“拒绝访问”的消息而不是没有看到按钮吗?你用什么代码来显示按钮?是的,问题是我所在的国家已经过滤了facebook,当我使用VPN连接到我的网站时,我可以看到“喜欢”按钮,它工作正常,许多人喜欢我的页面使用“喜欢”按钮,但当我没有连接到VPN时,我会看到“拒绝访问”来自我的互联网提供商的消息。我正在使用类似facebook的按钮生成器:如果用户没有尝试登录,状态会是什么?如果用户没有尝试登录,状态会是什么?不可用,因为它加载另一个页面而不是Like按钮,在该页面中,还有一个javascript将用户重定向到另一个页面,这是因为我需要找到一种方法来避免显示Like按钮,否则“AC