点击按钮后,webBrowser载入页面,并且页面自动向下滚动
滚动结束后,自动载入下一页面,如此循环

解决方案 »

  1.   

    (function() {
    var body = document.documentElement && document.compatMode == "CSS1Compat" ?
    document.documentElement : document.body;
    var timer = setInterval(function() {
    scrollBy(0,1);
    if (body.scrollHeight <= body.clientHeight + body.scrollTop) {
    clearInterval(timer);
    location = "http://blog.csdn.net/zswang"
    }
    }, 10);
    })();
      

  2.   

    实际的应用
    ....
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            /// <summary>
            /// 访问链接
            /// </summary>
            public const string url = "http://baike.baidu.com/view/{0}.htm";
            /// <summary>
            /// 每次滚动的像素
            /// </summary>
            public int offsetY = 3;
            /// <summary>
            /// 滚动的间隔时间毫秒为单位
            /// </summary>
            public int interval = 10;
            /// <summary>
            /// 当前页数
            /// </summary>
            public int page = 1;
            /// <summary>
            /// 是否自动滚动
            /// </summary>
            public bool autoScroll = false;
            /// <summary>
            /// 加载页面
            /// </summary>
            public void openUrl()
            {
                webBrowser1.Navigate(string.Format(url, page));
            }
            /// <summary>
            /// 开始滚屏
            /// </summary>
            public void startScroll()
            {
                webBrowser1.Navigate(string.Format(@"javascript:
    (function() {{
    var body = document.documentElement && document.compatMode == 'CSS1Compat' ?
    document.documentElement : document.body;
    clearInterval(window.timerAutoScroll);
    window.timerAutoScroll = setInterval(function() {{
    scrollBy(0, {0});
    if (body.scrollHeight <= body.clientHeight + body.scrollTop) {{
    clearInterval(window.timerAutoScroll);
    location = '{2}'
    }}
    }}, {1});
    }})();", offsetY, interval, string.Format(url, page))
                    );
            }
            /// <summary>
            /// 停止滚屏
            /// </summary>
            public void stopScroll()
            {
                webBrowser1.Navigate(@"javascript:clearInterval(window.timerAutoScroll);");
            }        private void Form1_Load(object sender, EventArgs e)
            {
                openUrl();
            }        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                if (!autoScroll || 
                    string.Compare(e.Url.ToString(), string.Format(url, page), true) != 0) return; // 不滚屏或者加载完成的不是当前页面
                page++; // 下一页
                startScroll();
            }        private void buttonStart_Click(object sender, EventArgs e)
            {
                if (autoScroll) return;
                autoScroll = true;
                startScroll();
            }        private void buttonStop_Click(object sender, EventArgs e)
            {
                if (!autoScroll) return;
                autoScroll = false;
                stopScroll();
            }
        }
    }
      

  3.   

    webBrowser1.Navigate("javascript,可以这样写吗?为何我连这样的语句都无法达到效果?
    webBrowser1.Navigate("javascript:alert('111');");
    提示IE无法下载页?
      

  4.   


    至少你得等页面加载完毕,否则代码在哪里执行?
    private void button1_Click(object sender, EventArgs e)
    {
        webBrowser1.Navigate("about:blank");
        while (webBrowser1.IsBusy) Application.DoEvents();
        webBrowser1.Navigate("javascript:alert(1);");
    }