C++ 调用 JavaScript(2)_C/C++语言_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

C++ 调用 JavaScript(2)

作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0

本篇关键词:调用 constbool
黑客防线网安网讯:   解决方案2:使用IE控件作为浏览器    myWebBrowser = new QAxWidget(this); //this 是main window widget, myWebBrowser 是它的成员变量    myWebBrowser->setControl(QString::fromUt...
   解决方案2:使用IE控件作为浏览器
    myWebBrowser = new QAxWidget(this); //this 是main window widget, myWebBrowser 是它的成员变量
    myWebBrowser->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}")); //设置IE控件
    myWebBrowser->setObjectName(QString::fromUtf8("WebBrowser"));
    myWebBrowser->setFocusPolicy(Qt::StrongFocus);
    setCentralWidget(myWebBrowser);
    myWebBrowser->dynamicCall("Navigate(const QString&)", xxx);  //打开一个页面xxx是你的url或本地html路径
    //. . . 等页面加载好后使用C++代码调用JS代码
    IWebBrowser2 *webBrowser = 0;
    myWebBrowser->queryInterface(IID_IWebBrowser2, (void **)&webBrowser);
    if (webBrowser) {
    CComPtr<IDispatch> spDisp = NULL;
    webBrowser->get_Document(&spDisp);
    myWebPage.SetDocument(spDisp); //注意,myWebPage的类型是CWebPage,关于它的定义,稍后有介绍
    myWebPage.CallJScript("f2", "abc"); //调用页面中的f2函数,它有一个参数,这里填“abc”
    webBrowser->Release();
    }
    //. . . CWebPage类的定义(粘贴的代码有点长,但是其实读起来很简单的)
    头文件(代码片段):
    class CWebPage
    {
    public:
    CWebPage();
    virtual ~CWebPage();
    bool SetDocument(IDispatch* pDisp);
    LPDISPATCH GetHtmlDocument() const;
    const string GetLastError() const;
    bool GetJScript(CComPtr<IDispatch>& spDisp);
    bool GetJScripts(CComPtr<IHTMLElementCollection>& spColl);
    bool CallJScript(const string strFunc,CComVariant* pVarResult = NULL);
    bool CallJScript(const string strFunc,const string strArg1,CComVariant* pVarResult = NULL);
    bool CallJScript(const string strFunc,const vector<string>& paramArray,CComVariant* pVarResult = NULL);  //关键看这个函数
    protected:
    void ShowError(LPCSTR lpszText);
    protected:
    CComPtr<IHTMLDocument2> m_spDoc;
    string m_strError;
    };
    CPP文件(代码片段):
    bool CWebPage::SetDocument(IDispatch* pDisp)
    {
    CHECK_POINTER(pDisp);
    m_spDoc = NULL;
    CComPtr<IDispatch> spDisp = pDisp;
    HRESULT hr = spDisp->QueryInterface(IID_IHTMLDocument2,(void**)&m_spDoc);
    if(FAILED(hr))
    {
    ShowError("Failed to get H
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15260-1.html
网站维护教程更新时间:2012-04-04 22:52:29  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer