您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在WebBrowser控件中获取呈现的html(由Javascript处理)?

如何在WebBrowser控件中获取呈现的html(由Javascript处理)?

这是我发现在运行javascript之后进入呈现的HTML(DOM)的一种解决方案:

一个名为webBrowser1的WebBrowser控件放在Form1类的Form上。

[Form1.cs [设计]]

然后用于代码使用:

[Form1.cs]

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace WebBrowserTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.webBrowser1.ObjectForScripting = new MyScript();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://localhost:6489/Default.aspx");
        }

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            webBrowser1.Navigate("javascript: window.external.CallServerSideCode();");
        }

        [ComVisible(true)]
        public class MyScript
        {
            public void CallServerSideCode()
            {
                var doc = ((Form1)Application.OpenForms[0]).webBrowser1.Document;
            }
        }
    }
}

将Form1_Load中的webBrowser1.Navigate(“ http:// localhost:6489 / Default.aspx ”)参数更改为您希望获取javascript处理后的DOM页面

您可以在CallServerSideCode()方法中访问修改后的DOM,例如:

doc.GetElementById("myDataTable");

或者,您可以像这样访问呈现的HTML:

var renderedHtml = doc.GetElementsByTagName("HTML")[0].OuterHtml;
javascript 2022/1/1 18:17:41 有488人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶