下面的代码在设置为名为 onclick 的函数时有效
<script type="text/javascript">
function Nome_evento() {
FB.api("/1718063768425398",
function (response) {
if (response && !response.error) {
/* handle the result */
document.getElementById("evento").innerHTML = response.name;
}
});
}
</script>
但是当
<script type="text/javascript">
FB.api("/1718063768425398",
function (response) {
if (response && !response.error) {
/* handle the result */
document.getElementById("evento").innerHTML = response.name;
}
});
</script>
下面是完整的 html 以供进一步了解
<html>
<?php
session_start();
$loader = require __DIR__ . '/vendor/autoload.php';
?>
<head>
<title>Ember</title>
</head>
<body>
<h1>Using Facebook API tests space</h1>
<div id="fb-root"></div>
<script src="js/face_init_js.js"></script>
<script>
FB.Event.subscribe('auth.authResponseChange', function (response) {
if (response.status === 'connected') {
alert("Successfully connected to Facebook!");
}
else if (response.status === 'not_authorized') {
alert("Login failed!");
} else {
alert("Unknown error!");
}
});
</script>
<input type="button" value="Login" onclick="Login()" />
<input type="button" value="Evento" onclick="Nome_evento()" />
<div id="displayName" style="padding-top: 20px">You haven't logged in yet.</div>
<div id="userName" style="padding-top: 20px">You haven't logged in yet.</div>
<div id="userID" style="padding-top: 20px">You haven't logged in yet.</div>
<div id="userEmail" style="padding-top: 20px">You haven't logged in yet.</div>
<script>
function Login() {
alert("comecou login!");
FB.login(function (response) {
if (response.authResponse) {
// some code here
FB.api('/me', function (response) {
document.getElementById("displayName").innerHTML = response.name;
document.getElementById("userName").innerHTML = response.username;
document.getElementById("userID").innerHTML = response.id;
document.getElementById("userEmail").innerHTML = response.email;
});
} else {
alert("Login attempt failed!");
}
}, { scope: 'email,user_photos,publish_actions' });
}
</script>
<div id="evento" style="padding-top: 20px">Evento</div>
<script type="text/javascript">
FB.api("/1718063768425398",
function (response) {
if (response && !response.error) {
/* handle the result */
document.getElementById("evento").innerHTML = response.name;
}
});
</script>
</body>
</html>
--编辑这是face_init_js.js,FB功能(如登录)正在工作
window.fbAsyncInit = function () {
FB.init({
appId: '*****************',
status: true,
cookie: true,
xfbml: true,
version : 'v2.5'
});
};
(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'));
2 编辑 -
<script type="text/javascript">
window.fbAsyncInit = function () {
FB.init({
appId: '505610319610868',
status: true,
cookie: true,
xfbml: true,
version : 'v2.5'
});
FB.api("/1718063768425398",
function (response) {
if (response && !response.error) {
/* handle the result */
document.getElementById("evento").innerHTML = response.name;
}
});
};
</script>
最佳答案
只有在加载并初始化JavaScript SDK后才能使用它:
window.fbAsyncInit = function() {
//SDK loaded, initialize it
FB.init({
appId : 'your-app-id',
xfbml : true,
version : 'v2.5'
});
//now you can use FB
};
链接:
- https://developers.facebook.com/docs/javascript/quickstart/v2.5
- http://www.devils-heaven.com/facebook-javascript-sdk-login/
如果这对您没有帮助,并且当您尝试使用 FB 时浏览器控制台中没有错误,请将 console.log 放在回调函数的开头。换句话说:调试您的代码。
关于javascript - 除非调用 onclick,否则脚本不会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34643612/