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限制的限制,但是从一些低级别的对象,如MSHTML
或SHDocVw
,访问此文字?
这对你有用吗?
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)