0

C# で HttpWebRequest または WebRequest を使用して 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)\"");

try2 つの int パラメーターを持つ JS 関数です。onclick メソッドを呼び出したいのですが、関数にパラメータを渡すにはどうすればよいですか。

onclick="try(1,3);"
4

1 に答える 1

3

これは自由回答式の質問ではありません...

WebRequest基本的に、Web サーバーとの間の接続を確立する「美化された」ソケット ライブラリです。WebRequestこれは、クライアント ( を使用するアプリ) とサイトをホストするサーバーの間でデータを転送する手段にすぎません。

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

そのため、ページに含まれる JavaScript を使用する機能が必要な場合は、それがWebBrowser最善の策です。ページで見つかった JavaScript を実行するために必要なライブラリ/プラグインをロードします。確かに遅いかもしれませんが、それはデータを転送するだけでなく、多くのことを提供しているためです (HTML をレンダリングし、初期化スクリプトを実行し、ページが美学のために必要であると定義した要素にバインドします)。

于 2012-04-25T13:59:18.280 に答える