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