gpt4 book ai didi

javascript - 在 IE8 中使用 javascript 从 flash 获取变量的问题

转载 作者:行者123 更新时间:2023-11-28 02:56:59 25 4
gpt4 key购买 nike

我正在创建一个测验,作为测验中的计时器,我有一个 Flash 电影(一个动画时钟)。我每秒轮询一次时钟,看看测验时间是否已到。

此功能的代码如下所示:(简化)

$(window).load(function() {
var flashMovie = getFlashMovieObject(flashId);
var timeElapsed = flashMovie.GetVariable("timeElapsed");
var timeSet = flashMovie.GetVariable("countdown");
var degrees = flashMovie.GetVariable("degrees");
var timerStatus = flashMovie.GetVariable("timerStatus");
});

首先,它只是获取 Flash 影片对象,然后调用该对象的一些方法。这在 Firefox(pc 和 mac)、Safari(mac)中工作正常,但在 pc 上的 IE8 中,它返回“第 3 行出现意外错误”(或使用 flashMovie 对象的任何其他行)。

getFlashMovieObject() 函数的代码如下所示:

function getFlashMovieObject(movieName)
{
if (navigator.appName.indexOf ("Microsoft") !=-1) {
return window[movieName];
}

return document[movieName];
}

感谢任何帮助!

更新:我发现如果设置 IE8 清除每次重新加载的缓存,就会发生这种情况。如果我不这样做,那么它只会在第一次失败,并且所有后续重新加载都可以正常工作。我不明白缓存如何解决这个问题。

最佳答案

根据我的经验,getFlashMovieObject 函数在某些浏览器中存在一些怪癖,我发现了它的几个版本。这在大多数浏览器中似乎都相当不错:

function getFlashMovieObject(movieName){
if(document.embeds[movieName])
return document.embeds[movieName];
if(window.document[movieName])
return window.document[movieName];
if(window[movieName])
return window[movieName];
if(document[movieName])
return document[movieName];
return null;
}

如果你碰巧使用 jQuery,我发现事情就像这样简单

$("#flashobject")[0].GetVariable("timeElapsed");

似乎适用于所有浏览器。

关于javascript - 在 IE8 中使用 javascript 从 flash 获取变量的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2363322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com