关于包含frame网页上文本框内容的读取,高手请进

goodboyws 2004-05-11 06:01:33
m_pWebBrowser->get_document( &pDisp);
hr = pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pDoc2);
while(pDoc2)
{
IHTMLElement* pElement;
if(SUCCEEDED(pDoc2->get_activeElement(&pElement)))
{
pDoc2->Release();
pDoc2 = NULL;
CComBSTR tagName;
pElement->get_tagName(&tagName);
CString str = tagName;
str.MakeUpper();
if (str == "FRAME" || str == "IFRAME")
{
HRESULT hr;
IHTMLWindow2 *pHTMLWindow;
IHTMLFrameBase2* pHTMLFrameBase2;
hr =pElement->QueryInterface(IID_IHTMLFrameBase2, (void**)&pHTMLFrameBase2);
pElement->Release();
hr = pHTMLFrameBase2->get_contentWindow(&pHTMLWindow);
pHTMLFrameBase2->Release();
/********************************************************* ***********************************************************/
//关键文题在这里
hr = pHTMLWindow->get_document(&pDoc2);
/********************************************************* ***********************************************************/

}
else
{
VARIANT_BOOL bText;
pElement->get_isTextEdit(&bText);
if (bText == VARIANT_TRUE)
{
return pElement;
}
else
pElement->Release();
}
}
}

以上代码对很多包含Frame网页都适用,包括CSDN的BBS,但对网易BBS,西陆社区
hr = pHTMLWindow->get_document(&pDoc2);不成功,错误信息是没有权限。
如何解决这个问题?
...全文
154 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
g_ongtian 2004-09-22
  • 打赏
  • 举报
回复
老兄,我也遇到这个问题了,
55555555555555!!!
蒋晟 2004-06-10
  • 打赏
  • 举报
回复
这是安全性的限制,除了自定义Internet安全管理器之外我不知道有没有办法解决
你可以去msdn online搜索IInternetSecurityManager查找相关文档
goodboyws 2004-05-13
  • 打赏
  • 举报
回复
帮我顶啊,有分
goodboyws 2004-05-12
  • 打赏
  • 举报
回复
UP
goodboyws 2004-05-12
  • 打赏
  • 举报
回复
jiangsheng(蒋晟.MSMVP2004Jan),你是怎么得到http://uh10.bj.163.com/cgi的信息的
goodboyws 2004-05-12
  • 打赏
  • 举报
回复
http://uh10.bj.163.com/cgi/boa可以访问啊
蒋晟 2004-05-12
  • 打赏
  • 举报
回复
<frame name="panel" scrolling="auto" noresize src="http://uh10.bj.163.com/cgi/boa" marginwidth="0" marginheight="0">
<frame name="main" scrolling="auto" src="http://uh10.bj.163.com/cgi/default" marginwidth="0" marginheight="0">

看起来从http://knl.bj.163.com不能访问http://uh10.bj.163.com
goodboyws 2004-05-12
  • 打赏
  • 举报
回复
以bj.163.com网易虚拟社区北京站为例,它的网页代码如下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<!-- saved from url=(0030)http://knl.bj.163.com/cgi/main -->
<HTML><HEAD><TITLE>网易虚拟社区 北京站</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JavaScript>
var temp = document.domain;
temp=temp.substr(temp.indexOf(".")+1);
document.domain = temp;
</SCRIPT>

<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD><FRAMESET
border=true frameSpacing=0 frameBorder=0 cols=128,*><FRAME name=panel
marginWidth=0 marginHeight=0 src="网易虚拟社区 北京站.files/boa" noResize><FRAME
name=main marginWidth=0 marginHeight=0
src="网易虚拟社区 北京站.files/post.htm"></FRAMESET></HTML>

可以看到它由两个frame组成,左边的frame可以访问,右边的则不能。
goodboyws 2004-05-12
  • 打赏
  • 举报
回复
谢谢jiangsheng(蒋晟.MSMVP2004Jan),如何解决类似的问题呢,或者说如何处理和网页不在一个domain里的frame
蒋晟 2004-05-12
  • 打赏
  • 举报
回复
view source
蒋晟 2004-05-11
  • 打赏
  • 举报
回复
这个是安全性的限制,你看看是不是在访问另外一个domain。不同domain的似乎不能垮框架访问

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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