Javascript facebook登录的FlashContent的GetElementById为null
我尝试使用js sdk为FlashFacebook登录创建简单的外部接口机制,但由于GetElementById(“flashContent”)为空,因此无法运行对FlashFacebook的回调 我该怎么修? 我曾在Firefox等浏览器上试用过,并给出了相同的结果。 当我单击按钮时,它调用checklogin js,但当进程完成并尝试回调flash时,methode GetElementById(…).onLogin不会运行 守则:Javascript facebook登录的FlashContent的GetElementById为null,javascript,facebook,flash,getelementbyid,externalinterface,Javascript,Facebook,Flash,Getelementbyid,Externalinterface,我尝试使用js sdk为FlashFacebook登录创建简单的外部接口机制,但由于GetElementById(“flashContent”)为空,因此无法运行对FlashFacebook的回调 我该怎么修? 我曾在Firefox等浏览器上试用过,并给出了相同的结果。 当我单击按钮时,它调用checklogin js,但当进程完成并尝试回调flash时,methode GetElementById(…).onLogin不会运行 守则: function requestLogin() {
function requestLogin() {
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Good to see you, ' + response.name + '.');
});
document.getElementById('dua').onLogin();
} else {
console.log('User cancelled login or did not fully authorize.');
document.getElementById('dua').onError();
}
});
}
</script>
<div id="flashContent">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="dua" align="middle">
<param name="movie" value="dua.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="transparent" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="always" />
<!--[if !IE]>-->
<object id="dua" type="application/x-shockwave-flash" data="dua.swf" width="550" height="400">
<param name="movie" value="dua.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="transparent" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="always" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
我已经找到了解决这个问题的办法。 首先,当我尝试使用flashContent设置id getelementbyid时,它运行得不好。 但当我尝试使用id=“dua”时,它也没有运行weel。 因此,我用inspect元素检查它,发现显示的对象是第二个不包含id的对象。因此,我给出一个id并在getelementbyid中调用它。 因此,当我尝试在任何浏览器中测试它时,它运行良好,但当我尝试在IE中测试它时,我必须使用IE methode提供的设置getelementbyid -CMIIW-
import flash.events.DataEvent;
import flash.events.MouseEvent;
flash.system.Security.allowDomain("*");
flash.system.Security.allowInsecureDomain("*");
tombol.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent):void{
FBconnect();
tombol.removeEventListener(MouseEvent.CLICK, onClick);
}
function FBconnect():void {
teks.text = "masuk fbconnect";
ExternalInterface.call("requestLogin");
ExternalInterface.addCallback("onLogin", onLogin);
ExternalInterface.addCallback("onError", onError);
}
function onError():void {
teks.text = "onError";
trace('error');
}
function logout():void {
ExternalInterface.call("FB.logout", null);
}
function onLogin():void {
teks.text = "onlogin";
trace("FB LOGIN");
connectUser();
}
function connectUser():void {
teks.text = "connectUser";
ExternalInterface.addCallback("loadUser", userCallback);
ExternalInterface.call("connectUser");
}
function userCallback(data:Array):void {
teks.text = "user callback";
trace("FB USER LOADED");
var userData:Object = data[0];
}