Facebook flash隐藏无法在IE上工作



我正在使用带有3D图形的Flash开发FB画布应用程序。我必须使用param wmode="direct"嵌入我的SWF。

根据FB文档,当使用wmode="direct"时,FB会在显示弹出窗口/对话框(购买积分、聊天、通知等)时隐藏闪光灯对象,在弹出窗口关闭后,它会再次显示闪光灯。

在Chrome和Firefox上,它是有效的,但在IE上,对话框关闭后,我检查了flash元素的样式,发现visibility=visible,但flash仍然隐藏!

我尝试了几种方法,结果都是一样的:

  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');  
    }  
    

谢谢
Roei

更新:
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();

希望这能有所帮助。

您是否尝试过使用display: none;display:block而不是visibility: hiddenvisibility: visible?在过去的项目中,我注意到IE有时会在visibilityCSS属性方面遇到问题。。。

最新更新