Flex应用中利用ExternalInterface API取得JavaScript返回值的例子

在前面的 Flex中利用ExternalInterface的API调用JavaScript函数的例子中,我们了解到了Flex应用中 调用JavaScript函数。
接下来的例子展示了Flex应用中如何调用JavaScript函数并且使用返回值。
下面是具体的例子以及源代码:
Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- http://blog.flexexamples.com/2008/03/11/returning-values-from-javascript-in-your-flex-applications-using-the-externalinterface-api/ -->
  3. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  4.         layout="vertical"
  5.         verticalAlign="middle"
  6.         backgroundColor="white">
  7.     <mx:Script>
  8.         <![CDATA[
  9.             import mx.utils.ObjectUtil;
  10.             private function callJavaScript():void {
  11.                 var keys:Array = "appCodeName,appName,appVersion,cookieEnabled,language,platform,systemLanguage,userAgent,userLanguage".split(",");
  12.                 var arr:Array = ExternalInterface.call("getNavigatorObject", keys);
  13.                 dataGrid.dataProvider = arr;
  14.             }
  15.         ]]>
  16.     </mx:Script>
  17.     <mx:ApplicationControlBar dock="true">
  18.         <mx:Button label="Get browser navigator object"
  19.                 click="callJavaScript();" />
  20.     </mx:ApplicationControlBar>
  21.     <mx:DataGrid id="dataGrid"
  22.             variableRowHeight="true"
  23.             width="100%"
  24.             height="100%" >
  25.         <mx:columns>
  26.             <mx:DataGridColumn dataField="key"
  27.                     width="120" />
  28.             <mx:DataGridColumn dataField="value"
  29.                     wordWrap="true" />
  30.         </mx:columns>
  31.     </mx:DataGrid>
  32. </mx:Application>
下面是JavaScript文件(/src/externalInterface.js):
Download: externalInterface.js
  1. // JavaScript
  2. /** http://blog.flexexamples.com/2008/03/11/returning-values-from-javascript-in-your-flex-applications-using-the-externalinterface-api/ */
  3. function getNavigatorObject(keys) {
  4.     var arr = [];
  5.     var i;
  6.     var len = keys.length;
  7.     var key;
  8.     var value;
  9.     for (i=0; i<len; i++) {
  10.         key = keys[i];
  11.         value = navigator[key];
  12.         arr.push({key:key, value:value});
  13.     }
  14.     return arr;
  15. }
下面是HTML文件中需要添加的内容(/html-template/index.template.html):
Download: index.template.html
  1. <head>
  2. ...
  3. <script language="JavaScript" src="externalInterface.js"></script>
  4. </head>

你可能感兴趣的:(JavaScript,职场,休闲)