首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何异步加载facebook sdk

如何异步加载facebook sdk
EN

Stack Overflow用户
提问于 2016-02-09 20:17:19
回答 2查看 3.6K关注 0票数 1

我正在使用下面的代码在facebook上分享。

<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
  FB.init({
  appId                : "1549906631990069",
  status               : true, 
  cookie               : true, 
  xfbml                : true, 

  oauth: true,
  frictionlessRequests : true
});
};

(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>

在那之后,我有一张图片点击该图片,facebook分享弹出窗口即将出现。

<script type="text/javascript">
function shareOnFacebook() {
    var $temp = $(".wpProQuiz_points").find("span");
                    var scored = $temp.eq(2).text();

  FB.ui(
  {
    method        : 'feed',
    display       : 'iframe',
    name          : 'I have Scored '+ scored + ' in edumongoose quiz.',
    link          : 'https://quiz.dev.edumongoose.com'
  },
  function(response) {
    if (response && response.post_id) {
      alert('OK! User has published on Facebook.');

    } else {
      alert('Post was not published.');
    }
  }
);

}

这项工作在chrome和火狐的普通窗口中很好,但当我进入私人窗口时,它显示错误:"https://connect.facebook.net/en_US/all.js“处的资源被阻止,因为启用了跟踪保护。

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-09 20:20:55

这不是你的错!浏览器正在根据已知的脚本列表检查所有下载的脚本文件,以将跟踪信息发送回服务器。在匿名或私密模式下,浏览器出于隐私原因往往会阻止这些脚本。

https://bugzilla.mozilla.org/show_bug.cgi?id=1226498上针对火狐提出了一个错误报告

票数 3
EN

Stack Overflow用户

发布于 2018-09-07 08:05:36

我成功的唯一方法就是使用

    <script src=\"/js/jquery.min.js\" async></script>

然后:

    <script>
     $(document).ready(function () {
     var options = {
     type: "delay",   
     time:1000, //1 sec
     scripts: [
                    "http://connect.facebook.net/en_US/all.js#xfbml=1&appI$
                    "http://assets.pinterest.com/js/pinit.js"
                            ],
     success: function () {
         FB.init({ status: true, cookie: true, xfbml: true });
     }
    };
    $.lazyscript(options);

   });
   </script>

你可以在谷歌上搜索lazyscript并下载它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35291865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档