所以我放弃了将登录代码放在单独的.js文件中的想法.我只是将FB.login
方法window.fbAsyncInit
与FB.init
代码一起放在块内的html中.它完美地运作.
<body> <div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({ appId : '140*****07', // App ID channelUrl : '//http://s******.com/channel.html', // Channel File status : true, // check login status cookie : true, // enable cookies to allow the server to access the session oauth : true, xfbml : true // parse XFBML }); FB.login(function (response) { if (response.status === "connected") { var uID = response.authResponse.userID; console.log(uID); FB.api('/me', function (response) { var name = response.name; var locationName = ' '; if (response.location) { locationName = response.location.name; console.log(locationName); } else { alert("your current city needs to be set in your Facebook 'about' section. Please make it public for our use"); } });//closes fb.api } else if (response.status === "not_authorized") { //authCancelled. redirect } }, { scope: 'user_location,user_likes' } ); };//closes window.fbAsynInit // Load the SDK asynchronously (function(d){ var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; ref.parentNode.insertBefore(js, ref); }(document)); </script> <h1 id="redirecting">Redirecting</h1> <button id="button">click</button> <img id='backgroundImg' src="https://sa*****.com/template.jpg"/> </body> </html>