C#-从javascript生成的webbrowser获取变量

C#-从javascript生成的webbrowser获取变量,c#,javascript,browser,C#,Javascript,Browser,已下载webbrowser提供的页面,需要获取邮件地址。但它是由javastript生成的。在代码中,我可以找到以下脚本: <script type="text/javascript" charset="utf-8">var i='&#109;a'+'i&#108;'+'&#116;o';var a='impexta&#64;impexta&#46;sk';document.write('<a href="'+i+':'+a+'" onc

已下载webbrowser提供的页面,需要获取邮件地址。但它是由javastript生成的。在代码中,我可以找到以下脚本:

<script type="text/javascript" charset="utf-8">var i='&#109;a'+'i&#108;'+'&#116;o';var a='impexta&#64;impexta&#46;sk';document.write('<a href="'+i+':'+a+'" onclick="_kt.i(386728, 20);">'+a+'</a>');</script>

我找到了简单的解决办法。仅在HTML代码中查找字符串的正确部分:

foreach (HtmlNode link in root.SelectNodes("//script"))
{
    if (link.InnerText.Contains("+a+"))
    {
        string[] strs = new string[] { "var a='", "';document.write" };
        strs = link.InnerText.Split(strs, StringSplitOptions.None);
        outMail = System.Net.WebUtility.HtmlDecode(strs[1]);
        if (outMail != "")
        {
            break;
        }
    }
}

那么,它是在DOM之后加载的吗?我不确定,所以我添加了如何获取页面字符串。抱歉,可能是重复的,但是创建单独的HTML元素,带有序列化内容以获取变量。。。太可怕了。最好使用本机功能:
var window=WebBrowser.Document.parentWindow;返回window.GetType().InvokeMember(propertyName,BindingFlags.GetProperty,null,window,null)
foreach (HtmlNode link in root.SelectNodes("//script"))
{
    if (link.InnerText.Contains("+a+"))
    {
        string[] strs = new string[] { "var a='", "';document.write" };
        strs = link.InnerText.Split(strs, StringSplitOptions.None);
        outMail = System.Net.WebUtility.HtmlDecode(strs[1]);
        if (outMail != "")
        {
            break;
        }
    }
}