無知で申し訳ありません。あなたは私に物事を説明しなければならないでしょう、私は新しい水域に足を踏み入れています. 私はJavaのバックグラウンドを持っていますが、主にphp、javascriptです。
http://www.codeproject.com/Articles/19971/How-to-attach-to-Browser-Helper-Object-BHO-with-C
私はこの記事にいくつかの独自の変更を加えました。私の質問は、具体的には、Web ページの「トップ レベル フレーム」、つまり親ドキュメントを検出する方法です。私が実行するコードはOnDocumentComplete
、ページ上の iframe も完了すると実行されます。
私の機能と私が実装したソリューションは、実際には正しい結果を生成していません。
public class BHO:IObjectWithSite
{
WebBrowser webBrowser;
HTMLDocument document;
public void OnDocumentComplete(object pDisp, ref object URL)
{
document = (HTMLDocument)webBrowser.Document;
string href = document.location.href;
//get top level page
if (href == URL.ToString())
{
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create("http://mysite.com");
WebReq.Method = "POST";
WebReq.ContentType = "application/x-www-form-urlencoded";
byte[] buffer = Encoding.ASCII.GetBytes("string");
WebReq.ContentLength = buffer.Length;
Stream PostData = WebReq.GetRequestStream();
PostData.Write(buffer, 0, buffer.Length);
PostData.Close();
// Prepare web request and send the data.
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
StreamReader streamResponse = new StreamReader(WebResp.GetResponseStream(), true);
string Response = streamResponse.ReadToEnd();
Newtonsoft.Json.Linq.JObject json = Newtonsoft.Json.Linq.JObject.Parse(Response);
string active = json["active"].ToString();
//print to screen
System.Windows.Forms.MessageBox.Show(active, "Title");
}
}
ほとんどの場合、document.location.href
一致するかどうかのチェックは機能しますが、保証されていません。URL
その結果、1 ページの読み込みで複数の Web リクエストとポップアップが発生します。