1

我正在从事一个电子学习项目,我需要在其中提供 Flash 和 Moodle 的 SCORM Javascript API 之间的交互。

其实这已经完成了。它是用 fscommand 制作的,但在 Internet Explorer 9 中它会停止工作。

这是一个旧的遗留项目,有很多依赖于这些交互,所以我不能简单地将它更改为 ExternalInterface(我在最近的项目中一直在使用它)。

我尝试将 allowScriptAccess 更改为“始终”,但没有奏效。我也尝试过使用 meta http-equiv="X-UA-Compatible" 和几个不同的内容值,但它也没有用。

使用任何其他技术也不是一种选择。

如果有人对任何类似情况有任何建议或解决方案,我想知道。

提前致谢。

4

2 回答 2

1

挖掘一些旧知识我记得你可以模仿IE8。听起来你可能已经尝试过了。元 http-equiv="X-UA-Compatible" 内容="IE=EmulateIE8"

也许试试IE7。

于 2016-12-20T05:26:39.613 回答
0

谢谢你的回复,马克。是的,你猜对了。我曾尝试过EmulateIE8,但没有成功。

经过大量研究,我得出了一个解决方案,但我不能不放弃fscommand

之前:
我有一个嵌入式 SWF 调用和一个带有处理 SCORM API 交互的函数fscommand的 Javascript API 。_DoFsCommandSCORM 响应由 Javascript 的本机SetVariable函数传回 SWF。

然后: 我将所有 fscommand 调用更改为ExternalInterface.call直接调用该_DoFsCommand函数并将其预期值传递给它。因此,即使放弃 Flash,fscommand我也可以保留其余的代码。

然后我又遇到了另一个问题,SetVariable函数根据 DOM 对象和 Internet Explorer 版本而有所不同。它可以是嵌入的函数或对象的函数。SetVariable所以我必须在调用它之前检查嵌入是否具有该功能。如果不是,我从对象中调用它。

这样,我保证所有版本的 Internet Explorer 都将支持 Flash 的请求和 SCORM 响应,而不会对我的项目进行重大更改。

于 2016-12-21T13:04:59.527 回答