2015-04-05 49 views
1

我对Facebook插件编程颇为陌生。我指的是快速入门文档。Facebook插件无法在内容/模板页面上工作

在我的网站上,我有一个布局页面和几个内容页面。只有布局页面包含完整的html-head-body结构,其余的内容页面包含部分html元素(可以将其视为模板)。

我已经把FB.init()脚本只在页面布局,只是body标签下面:

<script> 
window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'MY-APP-ID', 
     xfbml: true, 
     version: 'v2.3' 
    }); 
}; 

(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')); 
</script> 

,并尝试使用类似插件在我的内容页中的一个测试集成:

   <div class="col-sm-10 fb-like" 
       data-share="true" 
       data-width="450" 
       data-show-faces="true"> 

但我发现它在内容/模板页面上不起作用。请注意,在这种情况下,我甚至没有在浏览器控制台中发现任何JavaScript错误。但是,直接在Layout页面中放置相同的作品。

请让我知道我在这里失踪。

P.S .:同样适用于fb登录(适用于布局,但不适用于模板)。

回答

1

声音像init在模板添加到DOM之前正在运行。你为aurelia标记了你的问题,所以我假设你有一个支持模板的视图模型。考虑利用您可以使用的生命周期回调 -

attached - 该模板已经呈现并且VM已连接到该回调函数。把你的FB.init()放在这里应该足够了。您可以根据您的设置在父母或孩子身上执行此操作。

相关问题