加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 异步加载Facebook Javascript SDK

发布时间:2020-12-16 09:49:45 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试异步加载all.js文件. 在我的ASCX文件中: div id="fb-root"/div 我有一个包含javascript文件的用户控件: window.fbAsyncInit = function () { FB.init({ appId: 'XXXXXXXXXXXXX',status: true,cookie: true,xfbml: true,oauth: true });};(functi
我正在尝试异步加载all.js文件.

在我的ASCX文件中:

<div id="fb-root"></div>

我有一个包含javascript文件的用户控件:

window.fbAsyncInit = function () {
    FB.init({
        appId: 'XXXXXXXXXXXXX',status: true,cookie: true,xfbml: true,oauth: true
    });
};

(function () {
    var e = document.createElement('script');
    e.type = 'text/javascript';
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
} ());

但是,当页面呈现并加载时,FB不存在.

是什么赋予了?

解决方法

Sahil的回答是正确的.在呈现文档时,无法保证已加载任何异步脚本.

如果从fbAsyncInit回调中运行代码不是您想要的,您可以考虑两种替代方法:

选项1

加载SDK synchronousy:

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>

通过这样做,FB甚至在文档开始渲染之前就会存在.

选项2

检查SDK是否已经加载,并在没有时提供回退解决方案.

if (window.FB) {
    // use FB here ..
} else {
    // still loading,tell user to wait one more second
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读