Flex通過JS獲取客戶端IP和計算機名的實例代碼
首先說明一下,用JS方式獲取不是調(diào)用webservices和httpservices。
在我們每一個FLex web工程中,都有那么一個文件夾bin-debug,里面有個index.html文件,我的個人理解是這樣的,首先網(wǎng)頁運行的時候,mxml的文件會被編譯為swf,那么swf如何在瀏覽器中展現(xiàn),就是通過這個html文件,相當于在html文件中嵌入了一個swf的object組件。 www.dbjr.com.cn
所以,在這個html中寫入js的代碼,來獲取ip地址我個人覺得是可行的。因此出現(xiàn)以下代碼。
在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中調(diào)用呢,那就用到了Flex的這個類:flash.external.ExternalInterface。
對于ExternalInterface類,adobe是這樣解釋的:
ExternalInterface 類是外部 API,這是一個在 ActionScript 和 Flash Player 容器之間實現(xiàn)直接通信的應用程序編程接口,例如,包含 JavaScript 的 HTML 頁。Adobe 建議使用 ExternalInterface 實現(xiàn) JavaScript 與 ActionScript 之間的所有通信。
在 Flash Player 中,可以使用 HTML 頁中的 JavaScript 來調(diào)用 ActionScript 函數(shù)。ActionScript 函數(shù)可以返回一個值,JavaScript 會立即接收它作為該調(diào)用的返回值。
此功能替代 fscommand() 方法。
在以下瀏覽器和操作系統(tǒng)的組合中可以使用 ExternalInterface 類:
瀏覽器 操作系統(tǒng) 操作系統(tǒng)
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 以實現(xiàn)插件腳本處理。即使上面未列出瀏覽器和操作系統(tǒng)組合,如果它們支持 NPRuntime API,則它們也應該支持 ExternalInterface 類。
注意:在將 SWF 文件嵌入到 HTML 頁中時,請確保設置 id 屬性,并且 object 和 embed 標簽的 id 和 name 屬性不包含以下字符:
. - + * / /
注意:Flash Player 9.0.115.0 版和更高版本允許在 id 和 name 屬性中使用 .(句點)字符。
在瀏覽器中運行的 Flash Player 10 和更高版本中,以編程方式使用此類打開彈出窗口可能不會成功。不同的瀏覽器(和瀏覽器配置)可能會隨時阻止彈出窗口;不能保證可以顯示任何彈出窗口。不過,為了盡可能成功,請僅在作為用戶操作的直接結(jié)果執(zhí)行的代碼中使用此類打開彈出窗口(例如,在鼠標單擊或按鍵事件的事件處理函數(shù)中)。
利用 ActionScript,可以在 HTML 頁上執(zhí)行以下操作:
調(diào)用任何 JavaScript 函數(shù)。
傳遞任意數(shù)量、具有任意名稱的參數(shù)。
傳遞各種數(shù)據(jù)類型(Boolean、Number、String 等等)。
接收來自 JavaScript 函數(shù)的返回值。
通過在 HTML 頁上使用 JavaScript,可以:
調(diào)用 ActionScript 函數(shù)。
使用標準的函數(shù)調(diào)用表示法傳遞參數(shù)。
將值返回給 JavaScript 函數(shù)。
Flash Player 當前不支持嵌入到 HTML 表單中的 SWF 文件。
注意:在 Adobe AIR 中,ExternalInterface 類可用于在 HTMLLoader 控件中加載的 HTML 頁的 JavaScript 與嵌入在該 HTML 頁的 SWF 內(nèi)容中的 ActionScript 之間實現(xiàn)通信。
在我們的mxml文件中使用這個類。進行調(diào)用js中的獲取ip和pcname的函數(shù):
pcName = ExternalInterface.call("getClientPcName");
ip = ExternalInterface.call("getClientIp");
您可以嘗試Alert,看一下對不對。這樣還有一個問題,加入您的機器作為服務器,那么在服務器上獲取到的ip會是:127.0.0.1,處理它我相信你會有辦法的。
- JavaScript獲取客戶端計算機硬件及系統(tǒng)等信息的方法
- JS獲取計算機mac地址以及IP的實現(xiàn)方法
- jsvascript圖像處理—(計算機視覺應用)圖像金字塔
- 可以關(guān)閉計算機的js腳本
- Vue.js計算機屬性computed和methods方法詳解
- 網(wǎng)頁計算器 一個JS計算器
- js網(wǎng)頁版計算器的簡單實現(xiàn)
- 使用jsp調(diào)用javabean實現(xiàn)超簡單網(wǎng)頁計算器示例
- JSP實現(xiàn)計算器功能(網(wǎng)頁版)
- JavaScript計算器網(wǎng)頁版實現(xiàn)代碼分享
- 使用JSP制作一個超簡單的網(wǎng)頁計算器的實例分享
- node.js+express制作網(wǎng)頁計算器
- javascript實現(xiàn)簡單的可隨機變色網(wǎng)頁計算器示例
- JS基于遞歸實現(xiàn)網(wǎng)頁版計算器的方法分析
- JS實現(xiàn)可針對算術(shù)表達式求值的計算器功能示例
- js表達式計算器代碼
- JS實現(xiàn)基本的網(wǎng)頁計算器功能示例
相關(guān)文章
JS中頁面與頁面之間超鏈接跳轉(zhuǎn)中文亂碼問題的解決辦法
在原頁面一張圖片上添加了一個鏈接,鏈接中有中文,于是在跳轉(zhuǎn)過程中出現(xiàn)中文亂碼問題,下面給大家分享下解決方案2016-12-12JavaScript實現(xiàn)谷歌瀏覽器插件開發(fā)的方法詳解
對于瀏覽器插件相信大家都不陌生,誰的瀏覽器不裝幾個好用的插件呢,更是有油猴這個強大的神器。所以本文就來用JavaScript開發(fā)一個谷歌瀏覽器插件,感興趣的小伙伴可以了解一下2022-11-11解析為什么axios會有params和data兩個參數(shù)
本文給大家分享為什么axios會有params和data兩個參數(shù),先來回顧一下axios的基本使用,怎么發(fā)送一個請求,本文結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2023-10-10