为什么我的javascript在facebook应用程序中不起作用?

为什么我的javascript在facebook应用程序中不起作用?,javascript,facebook,facebook-graph-api,facebook-javascript-sdk,Javascript,Facebook,Facebook Graph Api,Facebook Javascript Sdk,我正在尝试在facebook应用程序画布中使用一个非常简单的javascript功能,但是,我一无所获。我把代码贴在下面 此外,我只使用非HTTPS画布URL?那会有什么不同吗 当我在facebook上查看我的应用程序时,我无法更改facebookUserIDDiv innerHTML 但是,当我转到实际的主机URL(canvas URL)时,我能够运行任何javascript而不会出现任何问题 FB app canvas甚至支持标准DOM函数吗 <body> <div id=

我正在尝试在facebook应用程序画布中使用一个非常简单的javascript功能,但是,我一无所获。我把代码贴在下面

此外,我只使用非HTTPS画布URL?那会有什么不同吗

当我在facebook上查看我的应用程序时,我无法更改facebookUserIDDiv innerHTML

但是,当我转到实际的主机URL(canvas URL)时,我能够运行任何javascript而不会出现任何问题

FB app canvas甚至支持标准DOM函数吗

<body>
<div id="fb-root"></div>
<script>

    window.fbAsyncInit = function() {

    FB.init({appId:'xxxxxxxxxxxxxxxxxx', 
    channelUrl:'//www.example.com/channel.html', 
    status:false, 
    cookie:true, 
    xfbml:false});

    FB.getLoginStatus(function(response) {

        if(response.status === "connected") {

            var facebookUserID = response.authResponse.userID;
            document.getElementById("facebookUserIDDiv").innerHTML 
            = facebookUserID;
        }

    }, true);

};

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

    <div id="facebookUserIDDiv"/>

</form>
</body>

window.fbAsyninit=函数(){
FB.init({appId:'xxxxxxxxxxxxxxxx',
channelUrl:'//www.example.com/channel.html',
状态:false,
曲奇:是的,
xfbml:false});
FB.getLoginStatus(函数(响应){
如果(response.status==“已连接”){
var facebookUserID=response.authResponse.userID;
document.getElementById(“facebookUserIDDiv”).innerHTML
=facebookUserID;
}
},对);
};
(职能(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);
}(文件);

状态:false,
更改为
状态:true,
。此
状态
-

检查登录状态


我很伤心。我甚至喝了一整瓶苏格兰威士忌。生活正在崩溃

我终于明白了。我真的很惊讶Facebook为什么不允许Javascript。事实证明,我需要使我的画布URL安全。因此,我上传了SSL证书,并用安全画布URL更新了Facebook应用程序仪表板

另外,请确保在请求内容时未指定http://或https://的任何内容。只需指定//,请求将使用正确的协议。这意味着,如果该页面是作为安全页面请求的,那么从该页面中请求的任何其他资源将自动作为https请求。如果只使用http请求页面,那么从页面内请求的相同资源将使用http协议自动请求