2017-01-10 93 views
0

我有以下HAMLFB分享按钮消失在页面加载

.share-fb-pop-up 
.fb-contain 
    .fb-share-button{"data-href" => "https://fls.net/proficiency_test", "data-layout" => "button", "data-mobile-iframe" => "false", "data-size" => "small"} 
    %a.fb-xfbml-parse-ignore{:href => "https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Ffls.net%2Fproficiency_test&src=sdkpreparse", :target => "_blank"} Share 
.pop-button-div 
    %button 
    Close 

我加载像这样的javascript:

:javascript 
window.fbAsyncInit = function() { 
    FB.init({ 
    appId  : '<my-app-id>', 
    xfbml  : true, 
    version : 'v2.8' 
    }); 
}; 

(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/sdk.js"; 
fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

而且我知道它的作品,因为我看到它生成文本“分享“,当我从a标记中删除类.fb-xfbml-parse-ignore它正确链接并通过Facebook分享。在本地主机上运行,​​或者在页面上打开SDK的调用,是否有问题?

谢谢!

回答

1

facebook-jssdk初始化脚本在共享按钮加载之前调用。

  1. 给您的按钮的id
  2. 使用JS找出当按钮加载并调用这个函数:FB.XFBML.parse(document.getElementById("<given-id>"))
+0

你怎么找出当按钮加载? – Thalatta

+0

并且我给它的'.fb-share-button'标识或者其中的''标签? – Thalatta

+0

1)很多选项,可以使用'document.ready()' 2)'id'用于包含按钮的任何元素,以便FB知道在哪里搜索它 – tinytot