求高人:MFC中不使用WebBrowser怎么调用JS文件里的函数
求高人:MFC中不使用WebBrowser如何调用JS文件里的函数
我本人会用WebBrowser控件加载页面并调用其中的Js函数。
但是我的MFC工程是没有界面的,我想出两种方案:
一、
不使用WebBrowser控件的情况下怎样调用js文件里的函数?
二、
在我需要的时候动态创建一个WebBrowser控件出来,使用之后再释放。
可我不知道如何动态创建WebBrowser控件,我只会先在对话框资源里插入WebBrowser控件,
并为其关联一个变量,然后在程序里使用。
------解决方案--------------------
1)
调用 Active Scripting Interfaces,可参考
http://stackoverflow.com/questions/16846386/run-javascript-function-from-c-without-mfc
2)
CoCreateInstance(CLSID_WebBrowser,....
------解决方案--------------------
楼上说的很对。
对于问题一:
可以使用第三方组件/库来解释执行JS函数。
但是不推荐,动态创建WebBrowser更简单方便。
对于问题二:
用CoCreateInstance创建。
例:
------解决方案--------------------
另外,程序启动时别忘了调用AfxOleInit()(MFC项目中)或OleInitialize(NULL)
初始化COM库
我本人会用WebBrowser控件加载页面并调用其中的Js函数。
但是我的MFC工程是没有界面的,我想出两种方案:
一、
不使用WebBrowser控件的情况下怎样调用js文件里的函数?
二、
在我需要的时候动态创建一个WebBrowser控件出来,使用之后再释放。
可我不知道如何动态创建WebBrowser控件,我只会先在对话框资源里插入WebBrowser控件,
并为其关联一个变量,然后在程序里使用。
------解决方案--------------------
1)
调用 Active Scripting Interfaces,可参考
http://stackoverflow.com/questions/16846386/run-javascript-function-from-c-without-mfc
2)
CoCreateInstance(CLSID_WebBrowser,....
------解决方案--------------------
楼上说的很对。
对于问题一:
可以使用第三方组件/库来解释执行JS函数。
但是不推荐,动态创建WebBrowser更简单方便。
对于问题二:
用CoCreateInstance创建。
例:
//使用ATL智能指针
CComPtr<IWebBrowser2> spWebBro;
spWebBro.CoCreateInstance(CLSID_WebBrowser);
//不使用ATL智能指针
IWebBrowser2 *pWebBro = NULL;
::CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_SERVER, IID_IWebBrowser2, (void**)&pWebBro);
------解决方案--------------------
另外,程序启动时别忘了调用AfxOleInit()(MFC项目中)或OleInitialize(NULL)
初始化COM库