javascript - Firefox 中的零星 "SetVariable is not a function"

标签 javascript flash firefox swfobject

我正在使用 swfObject 在我的应用程序中嵌入一个 Flash 播放器。偶尔,我在尝试与嵌入式 Flash 对象通信时会在 FireFox 中看到错误(仅在 IE 或 Chrome 中没有)。错误说“SetVariable 不是函数”。导致此错误的代码刚才执行得很好,现在显示此错误。如果我重新加载页面并重新运行,这种情况不会再次发生的可能性很大。

我在网络上看到有关 FF 不能很好地与 SetVariable 配合使用的报告,但没有任何修复方法。显然 swfObject 应该隐藏所有这些,但它没有。

这是我的代码:

...
var flashvars=...
var params=...
var attributes = {};
attributes.id = "my_player";

if( swfobject.hasFlashPlayerVersion("9.0.0") )
{
    swfobject.embedSWF("my_player_js.swf", "my_player_holder", "1", "1", "9.0.0", "", flashvars, params, attributes );
}
....

document.getElementById("my_player").SetVariable( "method:stop", "");

在 FF 上,最后一行有时会导致“SetVariable is not a function”错误。

有什么关于去哪里看的建议吗?

最佳答案

解决 .SetVariable is not a function in Firefox 错误的一个方法是

为 Id 和 Name 属性赋予与 Object 标签的 id 和 name 值不同的值。

var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the FSCommand messages in a Flash movie.
var bannerObj = isInternetExplorer ? document.all.banner : document.banner;
function getFlashMovieObject(movieName)
{
  if (window.document[movieName]) 
  {
      return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }

}

function LoadRefference()
{
 bannerObj = getFlashMovieObject("banner");
 if(typeof(bannerObj.SetVariable)=='undefined')
    bannerObj = document.getElementById('embbanner');
}

确保在文档完全加载后调用 LoadRefference。您可以在 document.ready 方法中调用它

穆罕默德哈立德努尔

关于javascript - Firefox 中的零星 "SetVariable is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1393227/

相关文章:

javascript - 如果内容更改为默认值,请更改文本字段输入样式

html - RTMP 流式无闪存和低延迟

android - 它可以在 Android 上播放 flash 文件吗?

javascript - jQuery.parseJSON(JSON.stringify(someData)); 有什么意义?

javascript - 自动将所有文件下载到计算机上用户首选的位置

flash - AS3 模板(如 C++)

javascript - 循环中的 prompt() 从不显示 writeln() 内容

css - Firefox 多重渐变背景错误

javascript - 检查 Firefox 版本 59 中是否启用了 Flash

javascript - 为每个线程/用户隔离 setInterval?