gpt4 book ai didi

c# - 如何在 C# 上调用带有参数的 JavaScript 函数

转载 作者:行者123 更新时间:2023-11-28 21:03:56 25 4
gpt4 key购买 nike

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

这是我的代码:

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、执行任何初始化脚本以及绑定(bind)到页面定义为美观所需的任何元素。)

关于c# - 如何在 C# 上调用带有参数的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10316810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com