0

マスター ページと子ページがあり、フラッシュ ムービーの子ページ内に JavaScript コードを配置しました。

問題は、アラートがオンになっているときに映画が機能しているように見えることです。少なくとも 1 つのアラート メッセージがなければ、コードは機能しません。皆さんなら解決できると思います。次のコードは 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.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 に答える
0

アラート コードがある場所に短いタイマーを配置する必要があります。window.document がムービーをロードする準備ができるように、このタイマーを少しだけスリープ状態にします。しかし、これはちょっとしたハックです。

jQuery の $document.ready() でフラッシュをロードして、問題を処理することもできます。おそらくより良い結果が得られ、コーディングの面からは間違いなく優れています。

于 2010-07-01T22:41:30.497 に答える