在WebBrowser中的另一个域中获取iFrame中的文本的任何解决方法?

Ahm*_*met 5 c# mshtml shdocvw webbrowser-control winforms

您可能会首先认为由于XSS限制而无法实现.但我正在尝试从托管WebBrowser网站的应用程序访问此内容,而不是来自网站中的javascript代码.

我理解是不可能的,并且不应该通过非hacky手段从javascript访问此内容,因为这将是一个很大的安全问题.但是从托管a的应用程序中获得此限制是没有意义的WebBrowser.如果我想加强我的应用程序用户的Facebook信息,我可以做一个Navigate("facebook.com")并做我想做的任何事情.这是一个托管WebBrowser网页的应用程序,而不是网页.

另外,如果你用谷歌浏览器转到包含一个iFrame其源是在另一个领域,然后右键单击它的内容,然后单击检查元素任何网页时,它会告诉你的内容.更简单的是,如果您导航到包含其他域中的iFrame的任何网页,您将看到其内容.如果您可以在上面看到它WebBrowser,那么您应该能够以编程方式访问它,因为它必须位于内存中的某个位置.

有什么办法,而不是从DOM对象,因为他们似乎是基于相同的引擎,如JavaScript,因此通过XSS限制的限制,但是从一些低级别的对象,如MSHTMLSHDocVw,访问此文字?

L.B*_*L.B 6

这对你有用吗?

foreach (HtmlElement elm in webBrowser1.Document.GetElementsByTagName("iframe"))
{
     string src = elm.GetAttribute("src");
     if (src != null && src != "")
     {
          string content = new System.Net.WebClient().DownloadString(src); //or using HttpWebRequest
          MessageBox.Show(content);
     }
}
Run Code Online (Sandbox Code Playgroud)