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

①需要一個別人寫好的類CWebPage,將其對於的兩個文件WebPage.h和WebPage.cpp添加到工程中。
  ②添加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   www.aiwalls.com
              }
              </script>
 
註意:
(1)上面javascript中panTo()函數是google map API中的一個函數,可根據不同需要自定義相關函數。
(2)以上實現不用管CWebPage類起什麼作用,直接用就行,如果想詳細瞭解內容,請搜索有關“COM組件自動化”“IDispatch接口”的文章。
作者:masikkk

You May Also Like