[編集]WebBrowserコントロールで検索語を「強調表示」するにはどうすればよいですか?
私はすでにこの記事を作成する前に2つの回避策を試しました。 両方とも動作していませんでした。 実行の流れは決してそれに入っていませんでした(はい、そうでしょう)。
- おそらく、いくつかのエラー、目に見えないエラーがあるはずです。それは、エクセプションの流れがそこに入るのを防ぎます。通常のプログラムのように見えますが、そうではありません。それは半分の場所の一種です。
if (e.Url.AbsolutePath == (sender as WebBrowser).Url.AbsolutePath)
または
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
[終了EDIT]
私はGoogleの言葉 "胃" を検索し、Yellow_color WIHそれをhilightedています。
私は良い結果を出しました。
public static string myTerm = "stomach";
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("https://www.google.co.kr/search?&q=" + myTerm);
webBrowser1.ScriptErrorsSuppressed = true;
WindowState = FormWindowState.Maximized;
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
IHTMLDocument2 myDoc = webBrowser1.Document.DomDocument as IHTMLDocument2;
StringBuilder myContents = new StringBuilder(myDoc.body.outerHTML);
string myColoring = "<span style='background-color:yellow'>" + myTerm + "</span>";
myContents.Replace(myTerm, myColoring);
Regex myRex = new Regex(myColoring);
myDoc.body.innerHTML = myRex.Replace(myContents.ToString(), myTerm, 6);
// I do not want to see codes at search_textbox itself, so I figured out '6' is a good number.
}
私はLocal_Websiteに同じコードを使用しました。
今回は無限ループがあります。
私はserachテキストボックスが何度も繰り返されると思います。
public static string myTerm = "stomach";
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.kmle.co.kr/search.php?Search=" + myTerm);
webBrowser1.ScriptErrorsSuppressed = true;
WindowState = FormWindowState.Maximized;
}
int myCount = 0;
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (myCount == 10) // I do not want endless loop.
return;
myCount++;
IHTMLDocument2 myDoc = webBrowser1.Document.DomDocument as IHTMLDocument2;
StringBuilder myContents = new StringBuilder(myDoc.body.outerHTML);
string myColoring = "<span style='background-color:yellow'>" + myTerm + "</span>";
myContents.Replace(myTerm, myColoring);
myDoc.body.innerHTML = myContents.ToString();
}
良いヒントはありますか?どうすれば目標を達成できますか?
感謝を。ナー.......私はそれらの2つのラインを試してみました。 //(WebBrowser1.ReadyState == WebBrowserReadyState.Complete)\tの場合、それらは機能しませんでした。彼らは捕まえられなかった。私は役に立たないことを意味する。 Absoulutely。 – Jason