2012-04-25 6 views
0

C#でHttpWebRequestまたはWebRequestを使用してJavaScript関数を呼び出したいとします。私はinvokememberと呼ぶことができるウェブブラウザを使いたくない。C#でパラメータを使用してJavaScript関数を呼び出す方法

public void MyWebRequest(string url, string method, string data) 
{ 

     request = WebRequest.Create(url); 

     if (method.Equals("GET") || method.Equals("POST")) 
     { 
      // Set the Method property of the request to POST. 
      request.Method = method; 
     } 
     else 
     { 
      throw new Exception("Invalid Method Type"); 
     } 
     string postData = data; 

     byte[] byteArray = Encoding.UTF8.GetBytes(postData); 

     request.ContentType = "application/x-www-form-urlencoded"; 

     request.ContentLength = byteArray.Length; 

     dataStream = request.GetRequestStream(); 

     dataStream.Write(byteArray, 0, byteArray.Length); 

     dataStream.Close(); 
} 
MyWebRequest("http://example.com", "POST", "javascript:onclick=\"try(1,3)\""); 

tryは、2つのint型のパラメータを持つJS関数です:

は、ここに私のコードです。私はonclickメソッドを呼び出すが、どのように関数にパラメータを渡すことができます。

onclick="try(1,3);" 
+0

申し訳ありませんが、私は自分のコードを編集しました!私はいくつかのコードを追加することを忘れていました..今、そのok – unbalanced

+0

javascript関数は 'WebRequest'でフェッチしているページにありますか? –

+0

はい.... .... – unbalanced

答えて

3

ただ、これは

WebRequestは基本的にウェブサーバへとからの接続を確立し、「見せかけ」のソケットライブラリです...オープンエンドの問題ではありません。これは、クライアント(WebRequestを使用するアプリケーション)とサイトをホストしているサーバーとの間でデータを転送する手段に過ぎません。

dataStream(コードを参照している)を表示した場合、実際のレイアウト要素や色やスタイルなどではなくHTMLマークアップだけが表示されるため、javasriptも機能しません。 HTMLにはレンダリングエージェントが必要ですが、JavaScriptにはエンジンが必要です。

ページに含まれるJavaScriptを使用する必要がある場合は、WebBrowserが最適です。ページにあるJavaScriptを実行するために必要なライブラリ/プラグインが読み込まれます。それは遅くなるかもしれませんが、データを転送するだけでなく(HTMLをレンダリングし、初期化スクリプトを実行し、ページが美学のために必要と定義した要素にバインドすることもできます)

+0

あなたの答えをありがとう..私はcompletly理解する.. – unbalanced

+0

@ハルナビ:嬉しいことに助けてくれました。 ;-) –

関連する問題