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