Cefsharp 执行js和webview2执行js

Cefsharp 执行js

// 引用CefSharp命名空间
using CefSharp;
using CefSharp.WinForms;
// 声明CefSharp浏览器变量
    private ChromiumWebBrowser browser;
    public Form1()
    {
        InitializeComponent();
        // 设置CefSharp浏览器的初始页面
        browser = new ChromiumWebBrowser("https://tongyi.aliyun.com/");
        this.panel1.Controls.Add(browser);
        browser.Dock = DockStyle.Fill; 
        //Cef 
    }
  String html = browser.GetSourceAsync().Result;
            string cookies = @" 
            var cookies = document.cookie;
			cookies;  
    "; 
            var result = this.browser.EvaluateScriptAsync(cookies).Result.Result;
            string headers2 = @"
			function getHeadersUsingXMLHttpRequest(url) {
				var xhr = new XMLHttpRequest();
				xhr.open('HEAD', url, true);
				return new Promise(function(resolve, reject) {
					xhr.onreadystatechange = function () {
						if (xhr.readyState == 4) {  // 请求完成
							if (xhr.status == 200) {  // 请求成功
								var headers = xhr.getAllResponseHeaders();
								resolve(headers);  // 返回响应头
							} else {
								reject('Request failed with status: ' + xhr.status);
							}
						}
					};
					xhr.send();
				});
			}
			 // 使用 await 确保 Promise 返回已完成的结果
			const headersget = await getHeadersUsingXMLHttpRequest(window.location.href);
			headersget;  // 返回获取到的响应头
		";
            var resultheader2 = this.browser.EvaluateScriptAsync(headers2).Result.Result;
            string headers3 = @"
                function getHeadersUsingXMLHttpRequest(url) {
                    var xhr = new XMLHttpRequest();
                    xhr.open('HEAD', url, true);
                    return new Promise(function(resolve, reject) {
                        xhr.onreadystatechange = function () {
                            if (xhr.readyState == 4) {  // 请求完成
                                if (xhr.status == 200) {  // 请求成功
                                    var headers = xhr.getAllResponseHeaders();
                                    resolve(headers);  // 返回响应头
                                } else {
                                    reject('Request failed with status: ' + xhr.status);
                                }
                            }
                        };
                        xhr.send();
                    });
                }

                // 这里不使用 `await`,而是通过 `.then()` 来处理 Promise 结果
                getHeadersUsingXMLHttpRequest(window.location.href).then(function(headers) {
                    return headers;  // 直接返回结果
                }).catch(function(error) {
                    return 'Error: ' + error;  // 返回错误信息
                });
            ";
            var resultheader3 = this.browser.EvaluateScriptAsync(headers3).Result.Result;

webview2执行js

	string cookies = @" 
            var cookies = document.cookie;
			cookies;  
    ";
			var cookie = await webView.ExecuteScriptAsync(cookies); 
			string headers2 = @"
			function getHeadersUsingXMLHttpRequest(url) {
				var xhr = new XMLHttpRequest();
				xhr.open('HEAD', url, true);
				return new Promise(function(resolve, reject) {
					xhr.onreadystatechange = function () {
						if (xhr.readyState == 4) {  // 请求完成
							if (xhr.status == 200) {  // 请求成功
								var headers = xhr.getAllResponseHeaders();
								resolve(headers);  // 返回响应头
							} else {
								reject('Request failed with status: ' + xhr.status);
							}
						}
					};
					xhr.send();
				});
			}
			 // 使用 await 确保 Promise 返回已完成的结果
			const headersget = await getHeadersUsingXMLHttpRequest(window.location.href);
			headersget;  // 返回获取到的响应头
		";
			var header2 = await webView.ExecuteScriptAsync(headers2);
			// 2. 执行 JavaScript 脚本,使用 postMessage 将响应头传递回 C# 端
			string headers23 = @"
    function getHeadersUsingXMLHttpRequest(url) {
        var xhr = new XMLHttpRequest();
        xhr.open('HEAD', url, true);
        return new Promise(function(resolve, reject) {
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4) {  // 请求完成
                    if (xhr.status == 200) {  // 请求成功
                        var headers = xhr.getAllResponseHeaders();
                        resolve(headers);  // 返回响应头
                    } else {
                        reject('Request failed with status: ' + xhr.status);
                    }
                }
            };
            xhr.send();
        });
    }

    // 这里不使用 `await`,而是通过 `.then()` 来处理 Promise 结果
    getHeadersUsingXMLHttpRequest(window.location.href).then(function(headers) {
        return headers;  // 直接返回结果
    }).catch(function(error) {
        return 'Error: ' + error;  // 返回错误信息
    });
";
			var result23 = await webView.ExecuteScriptAsync(headers23);
			var result = await webView.ExecuteScriptAsync(headers2);

Cefsharp 安装的时候要根据谷歌的版本进行选择