axWebBrowser取网页源码.遇到这种特殊情况请问怎么处理.

net135 2009-01-22 10:54:45
用axWebBrowser取网页源码.如果网页中有javascript函数setTimeout这个.就会取不到setTimeout网页后面的内容."正文"这里都取不到


<html>
<body>
前文
<script language=JavaScript>
var mystr = '等待..';
function wait()
{
window.status = mystr;
timerID= setTimeout("wait()",150000);
}
wait();
</script>
正文
</body>
</html>



C#代码.NavigateComplete2事件中取代码

private void axWebBrowser1_NavigateComplete2(object sender, AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e)
{
mshtml.HTMLDocument mydoc = (mshtml.HTMLDocument)_ActiveWebBrowser.Document;
string mmstr = mydoc.documentElement.innerHTML;
MessageBox.Show(mmstr);
}


http://www.cxinbao.com/test.html 这是完整网页内容
...全文
83 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
net135 2009-01-22
  • 打赏
  • 举报
回复
由于一时的头脑发热,花了两个晚上基于AxWebBrowser写了一个浏览器MyIE。现在用这个浏览器发的帖子,有点小市民的成就感,嘿嘿。源代码可以在本人的资源里下载到,这里简单总结如下:

1、VS2005自带的WebBrowser功能较少(网上资源也不多),AxWebBrowser控件暴露的事件更多些。比如打开新窗口的控制,WebBrowser貌似没有简单的方法来实现。

2、实现标签式界面,难点有:1)所有标签共用一个地址条、状态条、导航按钮,要切换上下文,要把界面状态封装起来,我封装到 BrowserData 类里,寄存在 TabPage.Tag 属性里;2)关闭一个Tab页时,默认会激活第一个Tab页,而不会回到上一个标签,我设计了一个标签栈(_pageStack)来管理;

3、实现了状态条,赞叹VS2005的 ToolStrip 功能强大,使用起来太方便了!感谢为我们铺路的工作者们!

4、实现了收藏夹功能,跟IE实时同步,其实也很简单,就是打开 Favorite 目录,遍历目录和子目录,解析链接文件;另一个难题是调出 IE 界面,例如“Internet 选项”“整理收藏夹”“添加到收藏夹”等;

5、集成了Google、百度搜索。

6、实现了输入框的自动完成,跟IE的效果完全一致。这里再次赞叹 ToolStrip 控件的强大~~

7、实现了地址条输入框历史记录管理、搜索关键字历史记录管理

8、花的时间很短,bug很少,不过代码没什么注释,读者就费点眼神吧,呵呵 :-)

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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