javascript - Facebook 插件无法在内容/模板页面上运行

标签 javascript html facebook aurelia

我对 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 错误。但是,当我直接将其放入布局页面时,效果相同。

请让我知道我在这里缺少什么。

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

最佳答案

听起来好像 init 是在模板添加到 DOM 之前运行的。您将问题标记为 aurelia,因此我假设您有一个支持模板的 View 模型。考虑利用可用的生命周期回调 -

attached - 一旦呈现模板并且虚拟机已附加到它,就会调用此回调。将 FB.init() 放在这里应该就足够了。您可以根据您的设置在父级或子级中执行此操作。

关于javascript - Facebook 插件无法在内容/模板页面上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29456424/

相关文章:

ios - 使用社交框架通过 iOS 6 应用程序共享内容说 iOS 设备?

Javascript SDK 删除请求发出意外的 OAuthException

javascript - Protractor:在执行期间将 google chrome 中的 Zoom 值从 100% 减少到 80%

javascript - 在Highchart中,为什么饼图的钻取数据颜色不同?

javascript - 使用(或不使用)range 即时替换内容可编辑字符

php - 如何创建指向另一个 PHP 页面的链接

javascript - 将哈希 HMAC SHA256 的 JS 加密代码移植到 PHP

jquery - wenzhixin bootstrap-table明细 View (子行)未初始化

javascript - translateZ 后鼠标向上/单击事件未触发

android - 在 Flutter 中处理 Cookie