VC/MFC中通過CWebPage類調用javascript函數(給js函數傳參,並取得返回值)


①需要一個別人寫好的類CWebPage,將其對於的兩個文件WebPage.hWebPage.cpp添加到工程中。

   CWebPage類頭文件和實現文件下載地址:

   http://download.csdn.net/detail/masikkk/4427190

②添加WebBrowser控件,在視圖/對話框類的頭文件中#include "webbrowser2.h",增加成員變量m_webBrowser,調用Navigate()函數加載一個html頁面。

③在對話框或者視圖的實現文件中,加入#include "WebPage.h",在按鈕的響應函數中就可以調用javascript函數了,具體代碼如下:

             CWebPage  web;

              web.SetDocument(m_webBrowser.GetDocument());

              CComVariant  varResult;  //存放返回值

              //注意:參數要用字符串類型傳遞過去

              web.CallJScript("TansTo", m_latitude, m_longitude, &varResult);  //調用JS中的函數TansTo(),並傳遞2個參數(緯度,經度),將返回值寫入varResult

              if( varResult. dblVal == 122.211 )  // double型對應dblVal,整形對應intVal

                    MessageBox(“成功從js中取得變量值”);

       ④在html文件的script標簽中定義對應的函數,具體代碼如下:

              <script type="text/javascript">

             function TansTo(lat, lng)//轉到指定位置,有兩個參數,緯度和經度

              {

                    map.panTo(new GLatLng(lat, lng));//谷歌地圖的API,跳轉到坐標指定地點

                    return 122.211 ;//返回一個double型的值給varResult

              }

              </script>

 

注意:

(1)上面javascript中panTo()函數是google map API中的一個函數,可根據不同需要自定義相關函數。

(2)以上實現不用管CWebPage類起什么作用,直接用就行,如果想詳細了解內容,請搜索有關“COM組件自動化”“IDispatch接口”的文章。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM