gpt4 book ai didi

javascript - 如何处理 Facebook javascript SDK 事件?

转载 作者:行者123 更新时间:2023-11-30 15:01:10 25 4
gpt4 key购买 nike

我有一个 javascript 代码,应该使用 Facebook API 执行一些功能。

根据文档,我按如下方式包含了 SDK。此代码包含在我的 Web 应用程序所有页面的模板中。 (在我的例子中,模板是添加到所有页面的东西......)

window.fbAsyncInit = function() {
FB.init({
appId : 'xxx',
autoLogAppEvents : true,
xfbml : true,
version : 'v2.10'
});

jQuery('.FacebookLoadingFlag').trigger('facebook:init');
FB.AppEvents.logPageView();
};

现在,每当我需要调用 Facebook 函数时,我都会在每个页面上尝试在 SDK 初始化后执行它,如下所示:

window.onload = function() {           
$(".FacebookLoadingFlag").bind("facebook:init", function() {
// code here
});
}

此实现效果不佳,因为有时 SDK 已初始化但尚未加载整个页面,因此事件 facebook:init 在获得事件处理程序之前触发。因此代码不会执行。

如果删除 window.onload,我有时会收到错误消息,提示未找到 jQuery。这意味着 jQuery 尚未加载。

在这两种情况下,代码通常不会执行。

有没有人知道何时执行此代码并确保它始终被执行?我是 Javascript 的新手,我不知道如何处理事件。

最佳答案

我认为您应该学习本教程,它是特定于 jQuery 的:

https://developers.facebook.com/docs/javascript/howto/jquery/v2.10

来自教程:

In this tutorial, you’ll learn how to incorporate the Facebook JavaScript SDK into your jQuery-based web app. Both jQuery and the JavaScript SDK provide their own solutions for deferring code execution until the libraries have loaded, and this tutorial will help you combine the two and ensure both are ready to use before you invoke the SDK.

您所遵循的教程是通用教程。

根据我上面链接的 jQuery 特定指南,您的代码应如下所示:

<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<link rel="stylesheet" href="style.css" />
<title>jQuery Example</title>
<script>
$(document).ready(function() {
$.ajaxSetup({ cache: true });
$.getScript('//connect.facebook.net/en_US/sdk.js', function(){
FB.init({
appId: '{your-app-id}',
version: 'v2.7' // or v2.1, v2.2, v2.3, ...
});
// After initialization code here
$('#loginbutton,#feedbutton').removeAttr('disabled');
FB.getLoginStatus(updateStatusCallback);
});
});
</script>
</head>

关于javascript - 如何处理 Facebook javascript SDK 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46518322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com