Facebook Flash Conceal 功能在 IE 上不起作用

标签 facebook flash facebook-canvas

我正在开发一个使用 Flash 和 3D 图形的 FB Canvas 应用程序。我必须使用参数 wmode="direct"嵌入我的 SWF。

根据FB documentation ,当使用 wmode="direct"时,FB 在显示弹出窗口/对话框(购买积分、聊天、通知等)时 Conceal Flash 对象,并在弹出窗口关闭后再次显示 Flash。

在 Chrome 和 Firefox 上它可以工作,但在 IE 上,对话框关闭后我检查了 Flash 元素样式,我看到 Visibility=visible,但 Flash 仍然是 Conceal 的!

我尝试了几种方法,但结果都相同:

  1. 不在 FB.init 上使用“hideFlashCallback”(让 FB 来做) 自动)
  2. 使用“hideFlashCallback”:

    function onFlashHide(params) {  
      if (params.state == 'opened') {  
        hideFlash();  
        FB.Canvas.hideFlashElement(params.elem);  
      } else if (params.state == 'closed') {  
        showFlash();  
        FB.Canvas.showFlashElement(params.elem);  
      }  
    }  
    function hideFlash() {  
      $('#flashContent').css('visibility', 'hidden');  
    }  
    function showFlash() {  
      $('#flashContent').css('visibility', 'visible');  
    }  
    

谢谢!
罗伊

更新:
FB文档的另一个引用:http://developers.facebook.com/docs/appsonfacebook/tutorial/#flash

最佳答案

在调用 FB.ui 函数时,我在 IE 上遇到了同样的问题。 Facebook 对话框将打开,但关闭后 Flash 将不会返回。

我发现了一个解决这个问题的技巧。在调用 FB 函数之前,使用 javascript 将焦点设置到不同的 HTML 元素。之后,当我完成 Facebook 对话框时,Flash 对象再次可见。

    // IE9 has a problem where the Flash object won't regain 
// focus if it has focus when the FB UI is called.  To fix this,
// We'll redirect focus before the call.
var lFocus = document.getElementById('focus_target');
lFocus.focus();

希望这有帮助。

关于Facebook Flash Conceal 功能在 IE 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9965344/

相关文章:

facebook - Facebook 共享功能中的问题

javascript - 如何使用 SWFObject 检测闪光灯

闪存安全错误 #2048 : Is there a workaround or does Twilio have to change their meta-policy?

css - 使用 HTML5 为现代浏览器嵌入 Flash 的最佳方式?

facebook - 获取 Facebook 使用案例的最低要求是什么?

javascript - facebook api - 失去我的范围

php - 数据库信息到Facebook Page Tab? XML 和 curl

ios - 如何在基于混合 HTML5 的应用程序中使用 Facebook javascript SDK 登录

facebook-graph-api - 哪个 Unity 平台最适合 Facebook Canvas 应用程序

facebook - Facebook Canvas 应用程序是否需要登录按钮?