在IE和Mozilla中的Flash用于包含母版页和内容页面的asp.net页面

时间:2010-07-01 22:17:37

标签: asp.net flash master

我有一个母版页和一个子页面,并将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);
  }         
 }

2 个答案:

答案 0 :(得分:0)

您需要在警报代码所在位置设置一个简短的计时器。让这个计时器稍微休息一下,以便window.document可以为你加载电影做好准备。但这是一个轻微的黑客攻击。

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

答案 1 :(得分: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);
  }

}

感谢
arunendra

相关问题