【发布时间】:2014-02-06 10:35:58
【问题描述】:
因为今天我遇到了问题,我的 facebook like 按钮显示在页面上,尽管它被放置在隐藏的 div 中。 每个包含原始 facebook 按钮的 iframe 容器都具有“可见性:无”。 iframe 本身是可见的。有趣的是,谷歌分享按钮的工作方式完全相同(直到 iframe 的所有容器都是不可见的,并且 iframe 本身是可见的)并且没有显示。 包含我的共享按钮的 div 应该改变它的可见性,当我将鼠标悬停在某个区域上时,当然还有他的共享按钮。 工作正常,除了 facebook 按钮。 你们中是否有人最近遇到过同样的问题和/或对我有解决方案?
这是包含分享按钮的 div 的代码。
<div id="dachleiste-erweiterung-sm" class="socialmedia">
{% set artikel_share = 0 %}
<IR_INCLUDE FILE="tp_bks_snippet_share.twig" />
</div>
这是 tp_bks_sn-p_share.twig 的内容
<div class="share col-md-30 clear clearfix">
{% set artikel_share = "@@share{}@@" %}
{% if artikel_share %}
{% set share_url = url_canonical %}
{% else %}
{% set share_url = homepage_url %}
{% endif %}
{# https://developers.facebook.com/docs/reference/plugins/like/ #}
<div class="facebook float-left">
<div class="fb-like" data-href="{{ share_url }}" data-width="100" data-layout="button_count" data-action="like" data-show-faces="true" data-share="false"></div>
</div>
{# http://twitter.com/about/resources/buttons #}
<div class="twitter float-left">
<a href="https://twitter.com/share" class="twitter-share-button" data-url="{{ share_url }}" data-lang="de">Twittern</a>
<script>!function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = "//platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");</script>
</div>
{# https://developers.google.com/+/plugins/share/
Place this tag where you want the +1 button to render. #}
<div {% if artikel_share == 0 %}id="google_global" {% endif %}class="google float-left">
<div class="g-plusone float-left" data-size="medium" data-href="{{ share_url }}"></div>
</div>
{# https://dev.xing.com/plugins/share_button/ #}
<div class="xing float-left">
<div data-counter="right" data-type="XING/Share" data-url="{{ share_url }}" data-lang="de"></div>
<script>;
(function(d, s) {
var x = d.createElement(s),
s = d.getElementsByTagName(s)[0];
x.src = "https://www.xing-share.com/js/external/share.js";
s.parentNode.insertBefore(x, s);
})(document, "script");</script>
</div>
<div class="linkedIn float-left">
<script src="//platform.linkedin.com/in.js" type="text/javascript">
lang: de_DE
</script>
<script type="IN/Share" data-url="{{ share_url }}"></script>
</div>
</div>
当然,我可以尝试将 facebook 按钮的不透明度设置为 0 或类似的东西,但我想找到更好的解决方案。
感谢任何帮助。 特立独行
【问题讨论】:
-
我认为设置一个隐藏的类似 FB 的按钮是违反他们的服务条款的。一些 JS 应该强制它可见。也许设置一个绝对定位的元素会起作用,但要注意 FB TOS
-
通过检查元素来检查 CSS 并检查是否有诸如可见性:可见性!重要的东西。 Facebook 和 google 使用自己的 js 来设计所有内容。要隐藏可见性,您应该在样式表中使用
visibility:hidden !important -
我刚刚使用了您推荐的解决方案@A.Wolff 并将容器绝对定位为隐藏并在悬停时显示它。如果您愿意,可以添加您的评论作为答案,我会接受。
-
@A.Wolff 你能为此引用任何参考吗?我不怀疑你,这会定义。是 face***k 会做的那种糟糕的事情,但我无法通过快速谷歌找到该政策。
-
@artfulrobot 我快速搜索并发现:“您不得隐藏或遮盖我们社交插件的元素,例如点赞按钮或点赞框插件。” developers.facebook.com/policy但最好直接问他们是否允许设置FB之类的按钮隐藏
标签: javascript jquery html css facebook-like