JavaScript基础教程 MFC与Webbrowser交互详解
沉沙 2018-09-18 来源 : 阅读 1575 评论 0

摘要:本篇教程介绍了JavaScript基础教程 MFC与Webbrowser交互详解,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入。

本篇教程介绍了JavaScript基础教程 MFC与Webbrowser交互详解,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入。

<

 
核心的一个CWebPage类是一个老外写的,封装了一些com操作,用来和webbrowser进行js调用,但是只能调用已经存在的js代码,有时需要自己向网页注入一些js函数(你懂的),你可以在一个空白页上面,用js生成整个页面。

    IHTMLDocument2* pHTMLDoc = (IHTMLDocument2*)web.get_Document();  
    if(pHTMLDoc != NULL)
    {
        IHTMLWindow2* pHTMLWnd;
        pHTMLDoc->get_parentWindow( &pHTMLWnd );
        if (pHTMLWnd != NULL)
        {
            CString js_code;
            js_code="function test(str){ alert(str);return str;}";//此次为实际写入的javascript代码  
            //js_code.Format(L"goToLocation(‘%s‘);",JScode);//JS函数名+参数    
            VARIANT  ret;
            pHTMLWnd->execScript(js_code.AllocSysString(), L"Javascript", &ret);//执行javascript代码  
            pHTMLWnd->Release();
            
            CWebPage page;
            page.SetDocument(web.get_Document());
            CComVariant varResult;
            page.CallJScript("test","123",&varResult);
            MessageBox(CString(varResult.bstrVal));
        }
        pHTMLDoc->Release();
    }   

先向网页注入(这样听上去比较高大上)一个js函数(代码只是方法之一,还有其他的方法就不列举了),然后通过webpage封装的方法调用函数并返回值,这样做的会比C++用COM接口操作网页简单而且速度更快(并没有测试,理论上应该是这样)
这里只是解决MFC调用js,js调用MFC比较复杂也就没有去深入,COM这种东西感觉真的是上古遗物了,项目里使用的是截获网页的跳转地址来判断需要进行的操作,基本上已经足够了,记得winform里的webbrowser和js互相调用是将对象封装成一个com对象暴露给webbrowser。
     

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标WEB前端JavaScript频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程