Javascript Facebook获取区域设置
我做错了什么我试图从facebook iframe选项卡中获取用户的区域设置,以根据位置显示相关内容Javascript Facebook获取区域设置,javascript,jquery,facebook,facebook-graph-api,Javascript,Jquery,Facebook,Facebook Graph Api,我做错了什么我试图从facebook iframe选项卡中获取用户的区域设置,以根据位置显示相关内容 <script type="text/javascript"> (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.creat
<script type="text/javascript">
(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#xfbml=1&appId=" + 'MY APP ID';
fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk'));
window.fbAsyncInit = function () {
if (location.protocol == 'https:') {
FB._https = true;
};
FB.init({
appId: 'MY APP ID',
status : false,
cookie : false,
xfbml : true,
width: 810
});
FB.Canvas.scrollTo(0,0);
FB.Canvas.setAutoGrow();
}
</script>
<script>
FB.login(function(response) {
if (response.authResponse) {
if ($.data.get('user').get('locale') = "en_GB") {
$("a").attr("href", "URL");
}
}
});
</script>
我对jQuery了解不多,但这里有一些应该有效的方法:
FB.login(function(response) {
if (response.authResponse && response.authResponse.user.locale == "en_GB") {
$("a").attr("href", "URL");
}
});
编辑
哦,是的。
fb sdk的加载是异步的,因此只有在调用FBAsyncint方法之后才需要使用fb命名空间。
试试这个:
window.fbAsyncInit = function () {
if (location.protocol == 'https:') {
FB._https = true;
};
FB.init({
appId: 'MY APP ID',
status : false,
cookie : false,
xfbml : true,
width: 810
});
FB.Canvas.scrollTo(0,0);
FB.Canvas.setAutoGrow();
FB.login(function(response) {
if (response.authResponse && response.authResponse.user.locale == "en_GB") {
$("a").attr("href", "URL");
}
});
}
(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#xfbml=1&appId=" + 'MY APP ID';
fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk'));
请注意,FB.login试图弹出一个新窗口,因为在这段代码中,由于用户操作而没有调用该方法,浏览器可能会阻止弹出窗口。我在Firebug中没有看到任何错误。好的,请检查我的修订答案。啊哈,现在FB.init已经被调用了-这可能表明有问题,不需要调用FB.init两次。有没有办法不使用FB.login?类似这样的?FB.getLoginStatusfunctionresponse{if response.status=='connected'{