[C#]WebBrowerコントロールで、jQueryを使用して任意のJavaScriptを実行する

.Net Frameworkで用意されているWebBrowerコントロールを使用して、JavaScriptを実行できるプログラムを作成しました。実行するJavaScriptは素のままだと使い辛いので、jQueryを自動ロードしています。

例えば、Yahooのトップページに対して下記のコードを実行させると…

$('input#srchtxt').val( "hello world" );
$('input#srchbtn').click();




指定されたキーワードで検索を行ってくれます。





行っている事は非常に簡単で、Formのボタンをクリックしたら、jQueryをロードした上で、指定されたスクリプトを実行するブックマークレットを走らせるだけです。コードも以下のようにシンプルです(C#のコードの中にJavaScriptのコードが入っているので可読性が低いですが…)。

		private void btnRunJs_Click( object sender, EventArgs e ) {
 
			string header = @"
(function(d, j, b) {
    function r() {
        setTimeout(function() {
            (typeof jQuery == 'undefined') ? r() : b(jQuery);
        }, 100);
    }
    if (j) { b(jQuery);
    } else {
        var s = d.createElement('script');
        s.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js';
        d.body.appendChild(s);
        r();
    }
})(document, this.jQuery, function($) {";
 
			string footer = @"});";
 
			webBrowser1.Url = new Uri( "javascript:" + header + txtJs.Text + footer );
		}




jQueryのロードは、下記のページの内容を参考にさせて頂きました。
jQueryでブックマークレットを書く 3




せっかく作ったので、ソースと実行ファイルをダウンロードできるようにしておきます。
プロジェクトは、VisualStudio2010で作成しています。

ダウンロード(src,exe)
WebBrowser_WithScriptTest.zip

関連記事

コメントを残す

メールアドレスが公開されることはありません。