FB.init 文档:https ://developers.facebook.com/docs/reference/javascript/FB.init/#flash为您提供了一些选项,如果您的应用程序无法与 wmode= 一起使用,则可以做一些比显示白色背景更好的事情“不透明”。
facebook.com 上的 Adobe Flash 应用程序
对于使用 Adobe Flash 的 Canvas 应用程序,尽可能首选 wmode="opaque"。我们发现,在具有硬件合成的现代浏览器上,使用 wmode="opaque" 通常不会降低性能。否则,默认情况下,Facebook 将在弹出事件发生时隐藏您的 Flash 对象,并在弹出窗口消失时重新显示它们。
如果您需要使用 wmode="window",并且想控制此行为(例如在发生这种情况时还显示文本或图像),您可以在 FB.init 的 hideFlashCallback 参数中提供一个函数。hideFlashCallback 将状态字段作为传入参数的一部分,表示窗口是打开还是关闭。如果您提供一个,这是您将覆盖的默认实现,但也可以让您了解覆盖的外观:
function(params) {
var candidates = window.document.getElementsByTagName('object');
for (var i = 0; i < candidates.length; i++) {
var elem = candidates[i];
if (elem.type != "application/x-shockwave-flash") {
continue;
}
var good = false;
for (var j = 0; j < elem.childNodes.length; j++) {
if (elem.childNodes[j].nodeName == "PARAM" && elem.childNodes[j].name == "wmode") {
if (elem.childNodes[j].value != "window" && elem.childNodes[j].value != "default") {
good = true;
}
}
}
if (!good) {
if (params.state == 'opened') {
elem.style.old_visibility = elem.style.visibility;
elem.style.visibility = 'hidden';
} else if (params.state == 'closed') {
elem.style.visibility = elem.style.old_visibility;
elem.style.old_visibility = '';
}
}
}
}
注意:某些 UI 方法(如 stream.publish 和 stream.share)无需注册应用或调用此方法即可使用。如果您使用的是应用程序 ID,则必须在此方法之后调用所有方法。