HTML页面与MyReport插件的JS交互技术详解

1 下载量 84 浏览量 更新于2024-08-27 收藏 253KB PDF 举报
本文主要探讨了在HTML页面中如何使用JavaScript与MyReport插件进行交互,特别是处理HTML页面、SWF加载以及数据同步的问题。在HTML页面中,Flash作为一个插件节点存在,JavaScript与Flash之间的交互需要确保双方加载的正确顺序。 首先,SWF调用外部JavaScript方法时,由于SWF的加载通常慢于页面JavaScript,所以JavaScript方法的存在通常不成问题。然而,当JavaScript尝试访问SWF的接口时,必须等待SWF完全加载完毕。为了实现这一目标,SWF插件需要在加载完成后主动通知HTML页面。这可以通过Flash的`ExternalInterface`类来实现。 `ExternalInterface`类提供了关键功能,如检查`available`属性以确定外部调用是否被允许,使用`addCallback`注册允许JavaScript调用的Flash方法,以及通过`call`方法使Flash内部能够调用JavaScript函数。这些方法确保了JavaScript和Flash之间的双向通信。 在更复杂的情况下,页面可能需要加载两次数据,这就要求在页面、Flash和数据全部加载完成后再执行后续操作。为了应对这种场景,MyReport插件会在加载完成时调用页面上的特定JavaScript方法,如`onMyReportInitialized`、`onMyReportClosed`和`onMyReportPrinted`。此外,它还提供了一个`loadReport`方法供页面JavaScript调用。 在Flex代码示例中,MyReportApp使用`creationComplete`事件触发初始化过程,并在此过程中调用JavaScript方法,确保了在插件加载完成后与JavaScript的交互。通过这种方式,开发者可以确保所有组件准备就绪,从而在HTML页面中顺利地与MyReport插件进行交互。