0

我有一个母版页和一个子页,并将 javascript 代码放置在 Flash 电影的子页中。

问题是当有警报时电影似乎工作,没有至少一个警报消息,代码不起作用,我相信你们可以解决,我可以看到以下代码在 Mozilla 和 IE 中都运行良好,但只有当警报打开时,如果我把它关掉,那么代码就不起作用。谁能告诉我解决方法是什么:

function getFlashMovie(movieName) {
 alert(''); // if I remove this , code does not work!!!!!!
 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);
  }         
 }
4

2 回答 2

0

您需要在警报代码所在的位置放置一个短计时器。让这个计时器稍微休眠一下,这样 window.document 就可以准备好让您加载电影了。但这是一个小技巧。

您还可以在 jQuery 的 $document.ready() 中加载 flash 来解决您的问题;这可能会给你更好的结果,而且从编码方面来说肯定更好。

于 2010-07-01T22:41:30.497 回答
0

最后我找到了解决方案,
以防有人遇到理智的问题,这是答案:

只需在window.onload事件中传递函数

window.onload = view_gallery;

function view_gallery() {
            var x = document.getElementById('hiddenfield').value;    
            getFlashMovie("galleryfinal").sendTextToFlash(x);

        }

function getFlashMovie(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);
  }

}

谢谢阿鲁南德拉
_

于 2010-07-03T20:40:38.353 回答