微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从PHP内部检测被阻止的地址

所以这是我的问题;我们正在尝试在我们的网站上设置“ facebook like”和“ twitter tweet”按钮,但是当Facebook和Twitter在其计算机上被阻止时,这会导致浏览器无法响应.
因此,我想做的是检测Facebook或Twitter是否被阻止,然后删除这些计算机的按钮,同时允许所有其他计算机加载它们.

这可能在PHPjavascript中?

我无法找到有关测试是否链接被阻止的任何信息.

解决方法:

您可以在页面上放置两个隐藏的图像,然后动态添加“喜欢”按钮.
这样的事情应该起作用:

<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 举报,一经查实,本站将立刻删除。

相关推荐