如何使用C#上的参数调用JavaScript函数
我想在C#中使用HttpWebRequest或WebRequest调用JavaScript函数。我不想使用可以调用invokemember的webbrowser。如何使用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
是一个JS函数有两个int参数。我想调用onclick方法,但是如何将参数传递给函数。
onclick="try(1,3);"
正是这样,这不是一个开放式的问题...
WebRequest
本质上是一种“荣耀”套接字库,建立并从Web服务器的连接。它不过是在客户端(使用WebRequest
的应用程序)和托管该站点的服务器之间传输数据的手段。
由于同样的原因,如果您查看dataStream
(引用您的代码),您只会看到HTML标记,而不是实际的布局元素和颜色,样式等,javasript也不起作用。 HTML需要一个渲染代理,JavaScript需要一个引擎。
因此,如果您需要使用页面上包含的JavaScript的功能,WebBrowser
是您最好的选择。它会加载运行页面上任何JavaScript所需的任何库/插件。它可能会比较慢,但是那是因为它给你的不仅仅是传输数据(它还呈现HTML,执行任何初始化脚本,并且绑定到页面定义为美学所必需的任何元素。)
谢谢你的回答..我完全理解它.. – unbalanced 2012-04-25 14:02:09
@HarunAbi:很高兴能帮到你。 ;-) – 2012-04-25 14:04:57
对不起,我编辑了我的代码!我忘了添加一些代码..现在它确定 – unbalanced 2012-04-25 13:36:36
JavaScript函数驻留在您使用'WebRequest'获取的页面上? – 2012-04-25 13:37:01
是它的.... :) – unbalanced 2012-04-25 13:39:32