Flex通过JS获取客户端IP和计算机名的实例代码

 更新时间:2013年11月21日 16:10:07   作者:  
这篇文章主要介绍了Flex通过JS获取客户端IP和计算机名的实例代码,有需要的朋友可以参考一下

首先说明一下,用JS方式获取不是调用webservices和httpservices。

    在我们每一个FLex web工程中,都有那么一个文件夹bin-debug,里面有个index.html文件,我的个人理解是这样的,首先网页运行的时候,mxml的文件会被编译为swf,那么swf如何在浏览器中展现,就是通过这个html文件,相当于在html文件中嵌入了一个swf的object组件。 www.jb51.net

    所以,在这个html中写入js的代码,来获取ip地址我个人觉得是可行的。因此出现以下代码。

在index.html中增加script标签,实际代码如下:

复制代码 代码如下:

<script type="text/javascript">

function getClientPcName()

{

    //alert("请将您浏览器Internet选项中的“对没有标记为安全的ActiveX控件进行初始化和脚本运行”设置为“启用”!/n/n然后刷新本页登陆!");

    ///window.onerror = killErrors; +"/"+WshShell.UserName;

  var WshShellPcName = new ActiveXObject("WScript.Network");

  var ComputerName = WshShellPcName.ComputerName ;

  //添加信任站点(http://192.168.1.5)

  //alert(ComputerName);

    return ComputerName;

  }

  function getClientIp()

  {

  var WshShellIp = new ActiveXObject("rcbdyctl.Setting");

       var ip = WshShellIp.GetIPAddress;

       return ip;

}

</script>


这样获取ip和pcname的相当于后台的代码就写好了。

如何在flex中调用呢,那就用到了Flex的这个类:flash.external.ExternalInterface。

对于ExternalInterface类,adobe是这样解释的:

ExternalInterface 类是外部 API,这是一个在 ActionScript 和 Flash Player 容器之间实现直接通信的应用程序编程接口,例如,包含 JavaScript 的 HTML 页。Adobe 建议使用 ExternalInterface 实现 JavaScript 与 ActionScript 之间的所有通信。

在 Flash Player 中,可以使用 HTML 页中的 JavaScript 来调用 ActionScript 函数。ActionScript 函数可以返回一个值,JavaScript 会立即接收它作为该调用的返回值。

此功能替代 fscommand() 方法。

在以下浏览器和操作系统的组合中可以使用 ExternalInterface 类:

浏览器 操作系统 操作系统
Internet Explorer 5.0 及更高版本 Windows
Netscape 8.0 及更高版本 Windows  MacOS
Mozilla 1.7.5 及更高版本 Windows  MacOS
Firefox 1.0 及更高版本 Windows  MacOS
Safari 1.3 及更高版本    MacOS
适用于 Linux 的 Flash Player 9.0.31.0 及更高版本在以下浏览器中支持 ExternalInterface 类:

浏览器
Mozilla 1.7.x 及更高版本
Firefox 1.5.0.7 及更高版本
SeaMonkey 1.0.5 及更高版本
ExternalInterface 类要求用户的 Web 浏览器支持 ActiveX® 或由某些浏览器公开的 NPRuntime API 以实现插件脚本处理。即使上面未列出浏览器和操作系统组合,如果它们支持 NPRuntime API,则它们也应该支持 ExternalInterface 类。
注意:在将 SWF 文件嵌入到 HTML 页中时,请确保设置 id 属性,并且 object 和 embed 标签的 id 和 name 属性不包含以下字符:

 . - + * / /

注意:Flash Player 9.0.115.0 版和更高版本允许在 id 和 name 属性中使用 .(句点)字符。

在浏览器中运行的 Flash Player 10 和更高版本中,以编程方式使用此类打开弹出窗口可能不会成功。不同的浏览器(和浏览器配置)可能会随时阻止弹出窗口;不能保证可以显示任何弹出窗口。不过,为了尽可能成功,请仅在作为用户操作的直接结果执行的代码中使用此类打开弹出窗口(例如,在鼠标单击或按键事件的事件处理函数中)。

利用 ActionScript,可以在 HTML 页上执行以下操作:

调用任何 JavaScript 函数。
传递任意数量、具有任意名称的参数。
传递各种数据类型(Boolean、Number、String 等等)。
接收来自 JavaScript 函数的返回值。
通过在 HTML 页上使用 JavaScript,可以:

调用 ActionScript 函数。
使用标准的函数调用表示法传递参数。
将值返回给 JavaScript 函数。
Flash Player 当前不支持嵌入到 HTML 表单中的 SWF 文件。

注意:在 Adobe AIR 中,ExternalInterface 类可用于在 HTMLLoader 控件中加载的 HTML 页的 JavaScript 与嵌入在该 HTML 页的 SWF 内容中的 ActionScript 之间实现通信。

在我们的mxml文件中使用这个类。进行调用js中的获取ip和pcname的函数:

pcName = ExternalInterface.call("getClientPcName");

ip =  ExternalInterface.call("getClientIp"); 


您可以尝试Alert,看一下对不对。这样还有一个问题,加入您的机器作为服务器,那么在服务器上获取到的ip会是:127.0.0.1,处理它我相信你会有办法的。

相关文章

  • LayUI树形表格treetable使用及说明

    LayUI树形表格treetable使用及说明

    这篇文章主要介绍了LayUI树形表格treetable使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • JS中页面与页面之间超链接跳转中文乱码问题的解决办法

    JS中页面与页面之间超链接跳转中文乱码问题的解决办法

    在原页面一张图片上添加了一个链接,链接中有中文,于是在跳转过程中出现中文乱码问题,下面给大家分享下解决方案
    2016-12-12
  • js实现旋转木马效果

    js实现旋转木马效果

    本文主要介绍了js实现旋转木马效果的实例。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • js实现的彩色方块飞舞奇幻效果

    js实现的彩色方块飞舞奇幻效果

    这篇文章主要介绍了js实现的彩色方块飞舞奇幻效果,涉及JavaScript响应鼠标事件动态操作页面元素样式的相关技巧,需要的朋友可以参考下
    2016-01-01
  • 微信小程序嵌入H5页面(web-view)的方法详解

    微信小程序嵌入H5页面(web-view)的方法详解

    使用<web-view>标签能在小程序中打开外部网页,但是要打开的网页的域名必须跟小程序的业务域名(业务域名可以在小程序的后台管理界面添加)一致,否则在真机上是打不开的,下面这篇文章主要给大家介绍了关于微信小程序嵌入H5页面(web-view)的相关资料,需要的朋友可以参考下
    2022-09-09
  • JavaScript实现谷歌浏览器插件开发的方法详解

    JavaScript实现谷歌浏览器插件开发的方法详解

    对于浏览器插件相信大家都不陌生,谁的浏览器不装几个好用的插件呢,更是有油猴这个强大的神器。所以本文就来用JavaScript开发一个谷歌浏览器插件,感兴趣的小伙伴可以了解一下
    2022-11-11
  • js多级树形弹出一个小窗口层(非常好用)实例代码

    js多级树形弹出一个小窗口层(非常好用)实例代码

    js多级树形弹出一个小窗口层(非常好用)实例代码,需要的朋友可以参考一下
    2013-03-03
  • javaScript call 函数的用法说明

    javaScript call 函数的用法说明

    javaScript 中的 call() 是一个奇妙的方法,但也是一个让人迷惑的方法,先看一下官方的解释。
    2010-04-04
  • CSS3 动画卡顿性能优化的完美解决方案

    CSS3 动画卡顿性能优化的完美解决方案

    今天小编就为大家分享一篇关于css3 动画卡顿性能优化的完美解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-09-09
  • 解析为什么axios会有params和data两个参数

    解析为什么axios会有params和data两个参数

    本文给大家分享为什么axios会有params和data两个参数,先来回顾一下axios的基本使用,怎么发送一个请求,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2023-10-10

最新评论