所以,div和调用fb js:Fb说要把它放在(body)标签之后。任何使用它的wp插件都会将它放在页脚(wp_footer()中,因为没有wp_just_after_body())。我有过这样的情况,我需要的fb功能只有在这个东西在body标签之后才有效。我不知道js足以知道区别是什么,以及身体或页脚是否是最佳位置。
答案 0 :(得分:3)
在您要加载的每个页面上打开正文标记之后。
更多来自facebook SDK docs:
不能使用display:none或隐藏fb-root元素 可见性:隐藏,或SDK的某些部分无法正常工作 Internet Explorer。
SDK将元素插入到期望定位的fb-root中 相对于身体或相对于靠近顶部的元素 页。最好是fb-root元素不在元素内部 与位置:绝对或位置:相对。如果你必须放置 在定位元素内部的fb-root元素,那么你也应该 给它一个靠近身体顶部或身体某些部位的位置 SDK可能无法正常运行。
答案 1 :(得分:0)
如果您需要在文档的页脚附近使用js sdk,最好使用async,并且只在sdk加载并初始化后才进行api调用。
我用。 示例:强> 假设我已将所有api调用包装在函数中。
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '135669679827333',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'https://anotherfeed.com/emo/channel.html', // channel.html file
oauth : true // enable OAuth 2.0
});
// facebook has been loaded and init, you can call your api functions from here.
if (window!=window.top) {
FB.Canvas.EarlyFlush.addResource("https://anotherfeed.com/");
setTimeout("FB.Canvas.setAutoGrow(250);", 2000);
toggle('connections'); // my api call
FB.XFBML.parse(loginb); // my api call
}else {
}
// !facebook load and init.
};
// Load the SDK Asynchronously
(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";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
</body>
</html>