所以这是我的问题;我们正在尝试在我们的网站上设置“ facebook like”和“ twitter tweet”按钮,但是当Facebook和Twitter在其计算机上被阻止时,这会导致浏览器无法响应.
因此,我想做的是检测Facebook或Twitter是否被阻止,然后删除这些计算机的按钮,同时允许所有其他计算机加载它们.
这可能在PHP或javascript中?
我无法找到有关测试是否链接被阻止的任何信息.
解决方法:
您可以在页面上放置两个隐藏的图像,然后动态添加“喜欢”按钮.
这样的事情应该起作用:
<img style="display:none;"
onl oad="user_can_access_facebook()"
one rror="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徽标的网址.这可能不是静态链接,因此您可能需要找到其他静态资源进行检查.)
对于Twitter,您也应该这样做.
编辑:
我整理了一个小的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"
onl oad="user_can_access('Facebook')"
one rror="no_access('Facebook')"
style="display:none;" />
<img src="http://support.twitter.com/images/twitter-logo-no-bird.png"
onl oad="user_can_access('Twitter')"
one rror="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上发生了变化,那么您也必须在代码中进行更改.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。