Javascript 类似Facebook的按钮创建CSS样式为-2000px的div,在站点上创建白框 我使用标准的HTML5 FB插件,所有这些看起来都很好,直到我看到我的站点上的一个页面冗长,我注意到我的内容中间有两个盒子,离脸谱网式按钮很远。我对XFBML版本也有同样的问题

Javascript 类似Facebook的按钮创建CSS样式为-2000px的div,在站点上创建白框 我使用标准的HTML5 FB插件,所有这些看起来都很好,直到我看到我的站点上的一个页面冗长,我注意到我的内容中间有两个盒子,离脸谱网式按钮很远。我对XFBML版本也有同样的问题,javascript,facebook,html,facebook-like,Javascript,Facebook,Html,Facebook Like,通过查看生成的按钮的代码,我可以看到在div id=“fb root”>中创建了div,其样式设置为位置:绝对;顶部:-2000px 如果转到,可以看到这是在第26行第2282列创建和设置的。它说:ga.style.position='absolute';ga.style.top='-2000px' 在小于此高度的页面上,您不会看到框。但在比这更长的页面上,框会出现。为什么?我怎样才能摆脱这些?我做错了什么? 按钮代码: <div id="fb-root"></div>

通过查看生成的按钮的代码,我可以看到在
div id=“fb root”>
中创建了
div
,其样式设置为
位置:绝对;顶部:-2000px

如果转到,可以看到这是在第26行第2282列创建和设置的。它说:
ga.style.position='absolute';ga.style.top='-2000px'

在小于此高度的页面上,您不会看到框。但在比这更长的页面上,框会出现。为什么?我怎样才能摆脱这些?我做错了什么?

按钮代码:

<div id="fb-root"></div>
<script>(function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=<my app id>";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
        <div class="fb-like" data-href="<my page>" data-send="true" data-width="200" data-show-faces="true" 
             data-layout="button_count" data-action="like" data-font=\"arial\"></div>

(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src=“//connect.facebook.net/en_US/all.js#xfbml=1&appId=“;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);
尝试添加:

ga.style.backgroundColor='transparent';
或:


如果将
fb root
元素放置在具有绝对或相对位置的元素中,则会发生这种情况,否则-2000px将相对于主体


如果您将
fb root
元素直接移动到身体中,那么这将不再发生。

谢谢,但我无法编辑connect.facebook.net/en_US/all.js,我并不是在寻找黑客解决方案;很明显,我是其中一个这是一个问题,所以我一定是做错了什么你应该能够检测到这个元素并在你自己的脚本中操纵样式。这个实现看起来像是一个黑客,所以除了跳板,你可能没有任何真正的选择。你说这个实现看起来像是一个黑客是什么意思?这正是Facebook开发者如ButtonGenerator所产生的代码。任何样式为-2000px的东西都是黑客,即使它是由Facebook开发人员编写的。我想这就是为什么他们告诉你把它放在body标签的开头…谢谢!
ga.style.visibility='hidden';