2

所以,div 和对 fb js 的调用:Fb 说把它放在 (body) 标记之后。任何使用它的 wp 插件都会将其放在页脚中(wp_footer(),因为没有 wp_just_after_body())。我曾经遇到过这样一种情况,我需要的 fb 功能只有在这些东西位于 body 标签之后时才能工作。我对 js 的了解还不够,无法知道有什么区别,以及 body 或 footer 是否是最好的地方。


尝试

print_r(unserialize($_SESSION['__vm']['vmcart']));
4

2 回答 2

3

就在您要加载的每个页面上的开始正文标记之后。

更多来自 facebook SDK 文档:

不得使用 display: none 或 visibility: hidden 隐藏 fb-root 元素,否则 SDK 的某些部分将无法在 Internet Explorer 中正常工作。

SDK 将元素插入到 fb-root 中,这些元素期望相对于 body 或相对于靠近页面顶部的元素定位。最好 fb-root 元素不在具有 position: absolute 或 position: relative 的元素内。如果您必须将 fb-root 元素放置在定位元素内,那么您还应该将其放置在靠近主体顶部的位置,否则 SDK 的某些部分可能无法正常工作。

于 2014-07-01T07:08:11.637 回答
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>
于 2012-07-10T16:45:14.677 回答