首頁  >  文章  >  web前端  >  Flex透過JS取得客戶端IP和電腦名稱的實例程式碼_javascript技巧

Flex透過JS取得客戶端IP和電腦名稱的實例程式碼_javascript技巧

WBOY
WBOY原創
2016-05-16 17:13:081172瀏覽

首先說明一下,用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標籤,實際代碼如下:

複製代碼 代碼如下:



這樣取得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
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 瀏覽器支援用戶的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 檔案。

注意:在 Adob​​​​e 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,處理它我相信你會有辦法的。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn