所以这是我的问题;我们正在尝试在我们的网站上设置 facebook like 和 twitter 推文按钮,但当 facebook 和 twitter 在计算机上被阻止时,它会导致浏览器变得无响应。
所以我想做的是检测 Facebook 或 Twitter 是否被阻止,然后删除这些计算机的按钮,同时允许所有其他计算机加载它们。
这在 php 或 javascript 中可能吗?
我无法找到有关测试链接是否被阻止的任何信息。
您可以在页面上放置两个隐藏图像,然后动态添加“点赞”按钮。
像这样的东西应该有效:
<img style="display:none;"
onload="user_can_access_facebook()"
onerror="no_access_to_facebook()"
src="http://static.ak.fbcdn.net/rsrc.php/v1/yp/r/kk8dc2UJYJ4.png" />
javascript函数在哪里user_can_access_facebook()
应该将赞按钮添加到 DOM 中。
(http://static.ak.fbcdn.net/rsrc.php/v1/yp/r/kk8dc2UJYJ4.png是登录页面上 Facebook 徽标的 URL。这可能不是静态链接,因此您可能需要找到其他一些静态资源来检查。)
对于 Twitter,你也应该这样做。
Edit:
我整理了一个小的 POC:
<html>
<head>
<script language="javascript" type="text/javascript">
function user_can_access(sitename) {
var siteDiv = document.getElementById(sitename + '_access');
siteDiv.innerText = "You have access to " + sitename;
}
function no_access(sitename) {
var siteDiv = document.getElementById(sitename + '_access');
siteDiv.innerText = "You do NOT have access to " + sitename;
}
</script>
</head>
<body>
<img src="http://static.ak.fbcdn.net/rsrc.php/v1/yp/r/kk8dc2UJYJ4.png"
onload="user_can_access('Facebook')"
onerror="no_access('Facebook')"
style="display:none;" />
<img src="http://support.twitter.com/images/twitter-logo-no-bird.png"
onload="user_can_access('Twitter')"
onerror="no_access('Twitter')"
style="display:none;" />
<div id="Facebook_access"></div>
<div id="Twitter_access"></div>
</body>
</html>
要在本地尝试,只需阻止对上述相应域的访问(static.ak.fbcdn.net
和 support.twitter.com)。
如前所述,您可能需要找到一些其他静态资源来检查。如果 facebook 和 twitter 上的图像 URL 发生变化,那么您也必须在代码中进行更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)