如何在C#上使用参数调用JavaScript函数 - c#

我想用C#中的HttpWebRequest或WebRequest调用JavaScript函数。我不想使用可以称为invokemember的Web浏览器。

这是我的代码:

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是具有两个int参数的JS函数。我想调用onclick方法,但是如何将参数传递给函数。

onclick="try(1,3);"

参考方案

只是这不是一个开放的问题...

WebRequest本质上是一个“标准化”套接字库,用于建立与Web服务器之间的连接。这不只是在客户端(使用WebRequest的应用程序)和托管站点的服务器之间传输数据的一种方式。

出于同样的原因,如果您查看dataStream(引用您的代码),则只会看到HTML标记,而看不到实际的布局元素,颜色,样式等,因此javasript也将不起作用。 HTML需要呈现代理,JavaScript需要引擎。

因此,如果您需要使用页面上包含的JavaScript的能力,那么WebBrowser是您的最佳选择。它将加载运行该页面上找到的所有JavaScript所需的所有库/插件。可能会比较慢,是的,但这是因为它给您带来的不仅仅是传输数据(它还呈现HTML,执行任何初始化脚本以及绑定页面已定义为美观所需的任何元素)。

如何在C#中的循环过程中多次更改控件的属性 - c#

我正在尝试做这样的事情:int i; while(true) { label1.Text = i.ToString(); i++; Thread.Sleep(500); } (实际上,我正在尝试做更复杂的事情,这更有意义,但这只是我的问题的一个简单示例)我期望标签的文本每1/2秒更改一次..但是它被卡住了。谢谢 参考方案 您不能让GUI线程进入睡眠状态(因为…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

Javascript-Urls的奇怪字符串比较行为 - javascript

最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com‏/&#…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

如何在C#Linq中找到集合的最小差异对象 - c#

我有收藏Class MyData { int f1; int f2; int f3; int f4; } var mycollection =List<MyData>(); 我需要返回字段f1和f3之间具有最小差异的对象。我在下面查询了mycollection.select(obj => obj.f1 - obj.f3).Min(); 但是…