有两个问题 请“凤之焚”兄进来看看,其大侠也可!

guti_milan 2006-09-21 06:00:27
1)近期在用字符串遍历网页内容的时候发现了一些局限!有些网站的链接用的是脚本譬如:href= javascript:PageDown();这样的话我就取不到他的URL了!我的问题就是能知道他PageDown()所定制的URL吗?能最好,省事;不能,那就只能用接口来遍历了,应该还要模拟FORM的提交事件!最主要的是提交了以后能得到触发后的那个网页的文档指针吗?谢了。。。。

2) 还有就是关闭程序的时候总会报kernel32.dll的access violation的异常
WinMainCRTStartup()->exit()->doexit()->$E824()->
00425012 pop edi
77E6B5AE xadd dword ptr [ecx],eax

请大侠请教!谢了。。。^_^
...全文
238 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2006-09-26
  • 打赏
  • 举报
回复
m_pDoc = (IHTMLDocument2*)GetHtmlDocument();
this is an object leak
use
CComQIPtr<IHTMLDocument2>m_pDoc;
IDispatch* pdisp=GetHtmlDocument();
m_pDoc = pdisp;

also check the ready state before you access the document
guti_milan 2006-09-26
  • 打赏
  • 举报
回复
上面的问题已经解决
我用接口执行脚本 效果真的不错
呵呵
第一个问题:兄台你说的那个HTMLScriptElement取JS的URL
是用get_src还是get_htmlFor?
试过了都不行!
lion_wing 2006-09-25
  • 打赏
  • 举报
回复
1、试试通过IHTMLScriptElement得到JS中的URL
2、你可以试着用智能指针,以免忘记释放指针。
guti_milan 2006-09-25
  • 打赏
  • 举报
回复
那兄台帮我看看这段代码有啥问题啊?
CComPtr<IHTMLDocument2>m_pDoc;
HRESULT hr;
IHTMLWindow2* pHTMLWnd;
m_pDoc = (IHTMLDocument2*)GetHtmlDocument();
if (m_pDoc)
{
hr = m_pDoc->get_parentWindow(&pHTMLWnd);
if (hr == S_OK)
{
if (pHTMLWnd)
{
BSTR bstrCode = strCode.AllocSysString();
BSTR bstrLang = strLang.AllocSysString();
VARIANT vRet;
vRet.vt = VT_BOOL;
hr = pHTMLWnd->execScript(bstrCode,bstrLang,&vRet); //这里执行的HR显示的是错误,程序执行时提示脚本错误!
if (hr == S_OK)
{
AfxMessageBox(_T("run"));
}
else
{
AfxMessageBox(_T("error"));
}
SysFreeString(bstrCode);
SysFreeString(bstrLang);
}
}
}
if(pHTMLWnd != NULL) pHTMLWnd->Release();

请兄台帮我看看啊!!!!!!!!
wlwlxj 2006-09-23
  • 打赏
  • 举报
回复
我的指针应该都释放了啊
可能是释放多了啊,^_^
guti_milan 2006-09-22
  • 打赏
  • 举报
回复
蒋老大
第二个问题里面
我的指针应该都释放了啊
还有其他原因吗?
蒋晟 2006-09-21
  • 打赏
  • 举报
回复
1 You need to handle the document event in the result page.
2 check if you over-released a COM pointer

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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