Flex应用获取HTML URL参数及JavaScript交互

需积分: 10 26 下载量 85 浏览量 更新于2024-12-02 收藏 48KB DOC 举报
"这篇文档介绍了如何在Flex应用中获取HTML页面传递的URL参数值,以实现Flex与服务器之间更有效的交互。主要涉及的技术点包括Flex的ExternalInterface类以及JavaScript的URL处理方法。" 在Flex开发中,有时我们需要从外部HTML页面向SWF文件传递参数,这些参数通常出现在URL中,例如`test.html?name=jex&address=chengdu`。由于Flex程序通常是嵌入在HTML容器中运行,因此需要通过特定的方式获取这些参数。这里的关键在于利用JavaScript来获取URL参数,然后再将这些参数传递给ActionScript。 Flex提供了`ExternalInterface`类,它允许ActionScript与Flash Player容器中的JavaScript进行通信。这个桥梁使得跨语言间的交互成为可能。在Flex应用程序中,我们可以调用`ExternalInterface.call()`方法来执行JavaScript函数,并接收其返回的结果。 以下是一个简单的示例,展示了如何在ActionScript中调用JavaScript函数来获取URL参数: ```actionscript ExternalInterface.call("getURLParams"); ``` 在JavaScript端,我们可以使用`Window`对象和`Location`对象来处理URL。`Window`对象代表浏览器窗口,而`Location`对象则包含了当前显示的URL信息。获取URL参数的常见做法是: ```javascript var url = window.location.href.toString(); // 获取完整的URL文本 var paramsStr = window.location.search.substring(1); // 获取问号(?)后面的部分 ``` `window.location.href.toString()`用于获取URL的完整文本,包括协议、主机名、路径等。`window.location.search.substring(1)`则截取URL中问号(?)之后的部分,这部分通常包含了所有查询参数。 在JavaScript获取到参数字符串后,可以进一步解析成键值对,例如使用`split('&')`方法分割参数,并用`split('=')`对每个键值对进行拆分。然后,这些参数可以通过`ExternalInterface.call()`方法回传给ActionScript,以便在Flex应用内部使用。 通过这样的方式,Flex应用能够有效地与外部环境交互,接收HTML页面传递的数据,从而实现更灵活的业务逻辑和数据传递。这种方法对于构建富互联网应用程序(RIA)尤其有用,因为它允许在不同的技术栈之间进行数据交换。