【问题标题】:Flash fscommand not working Internet Explorer 9Flash fscommand 无法正常工作 Internet Explorer 9
【发布时间】:2017-05-04 10:42:07
【问题描述】:

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

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

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

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

也不能使用任何其他技术。

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

提前致谢。

【问题讨论】:

    标签: javascript api flash scorm fscommand


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      也许试试IE7。

      【讨论】: