当前位置:编程学习 > C#/ASP.NET >>

问个很多人都无法解决的问题,如何判断页面加载完毕并统计frames数量

如何能获取到正确的frames数量,
用延时的话,如果页面打开非常卡的话,
也会出错
请高手指点一下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using mshtml;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        } 
        private void Form1_Load(object sender, EventArgs e)
        {
            ie.Navigate(@"http://zhidao.baidu.com/");
            ie.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(ie_DocumentComplete);
        }
        private void ie_DocumentComplete(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            
            while (ie.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); }
            WebBrowser wb = sender as WebBrowser;
            HTMLDocument doc = (HTMLDocument)wb.Document.DomDocument;
            IHTMLFramesCollection2 frames = doc.parentWindow.frames;
            MessageBox.Show(frames.length.ToString());//这里没法统计到正确的frames数量

        }
    }
}
--------------------编程问答-------------------- 百度知道有几个FRAMES?

换个页面试试,http://xxx.com/ --------------------编程问答--------------------
引用 1 楼 avi9111 的回复:
百度知道有几个FRAMES?

换个页面试试,http://xxx.com/

换个页面关键是没法判断FRAME是否加载完毕
我们做网页编程的时候判断一个未知有几个FRAME的页面
不可能都要去数到底有几个frame后再编程
期待高手指导 --------------------编程问答--------------------
你是高手还是低手呢?

我的意思是,百度那个页面异步加载你也拿它没办法,

各个公司的页面技术都不同,百度可以了,到新浪或者又不行了

我建议你先收窄范围,先弄个简单的,OK了,在搞百度,然后再搞其他

WebBrowserReadyState.Complete这个不行,不一定完全不行 --------------------编程问答--------------------
引用 3 楼 avi9111 的回复:
你是高手还是低手呢?

我的意思是,百度那个页面异步加载你也拿它没办法,

各个公司的页面技术都不同,百度可以了,到新浪或者又不行了

我建议你先收窄范围,先弄个简单的,OK了,在搞百度,然后再搞其他

WebBrowserReadyState.Complete这个不行,不一定完全不行

我是低手
期待个好的解决方案
--------------------编程问答-------------------- 原来你还是知道,高手和低手的区别是低手总是在等答案,而不是去换个角度看事情 --------------------编程问答--------------------
引用 5 楼 avi9111 的回复:
原来你还是知道,高手和低手的区别是低手总是在等答案,而不是去换个角度看事情

倒,期待解决中 --------------------编程问答--------------------
引用 6 楼 yonghanyang 的回复:
引用 5 楼 avi9111 的回复:
原来你还是知道,高手和低手的区别是低手总是在等答案,而不是去换个角度看事情

倒,期待解决中

继续等待 高手指导中
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,