求教 关于cwebpage

MiDEu 2016-07-05 11:54:19
这是MFC里面使用cwebpage调用html里面函数的代码
void CNewMaptest_01Dlg::OnBnClickedButtonTest()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);//更新变量的值
CWebPage web;
web.SetDocument(m_map.get_Document());
CComVariant varResult;
const CString funcName("TargetClear");
const CString m_ID("9");
bool res = web.CallJScript(funcName,m_ID, &varResult);
}

这是html里面相应的被调用的函数
function TargetClear(TargetID) {
var ID = parseInt(TargetID, 10);
var path = Target.row[ID].getPath();
path.length = 0;
}
但是bool的返回值res为false 调试得知cwebpage里面如下代码hr返回值为hr = 0x80020006 未知名称。
HRESULT hr = spScript->GetIDsOfNames(IID_NULL,&bstrMember,1,
LOCALE_SYSTEM_DEFAULT,&dispid);


求解
...全文
174 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiDEu 2016-07-07
  • 打赏
  • 举报
回复
不好意思 昨天大暴雨 停电回复晚了, 在程序启动时的OnInitDialog里面就已经Navigate打开html了
FASM_FASM 2016-07-06
  • 打赏
  • 举报
回复
你现在这样刚加载就调用,一定出错的。调用js的前提是文档对象已经加载成功才可以。 也就是一定要等Navigate完全加载一个html文档后(触发OnDocumentComplete)。才能获取IHTMLDocument2和Script。否则会出现空指针或找不到JS函数。所以不能在调用Navigate打开HTML后就紧接着获取IHTMLDocument2和Script,要等HTML文档加载完。

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧