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

來源:互聯網
上載者:User

①需要一個別人寫好的類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));//Google地圖的API,跳轉到座標指定地點
                    return 122.211 ;//返回一個double型的值給varResult   www.2cto.com
              }
              </script>
 
注意:
(1)上面javascript中panTo()函數是google map API中的一個函數,可根據不同需要自訂相關函數。
(2)以上實現不用管CWebPage類起什麼作用,直接用就行,如果想詳細瞭解內容,請搜尋有關“COM組件自動化”“IDispatch介面”的文章。
作者:masikkk

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.