I want to run a C# function using ExecuteScriptAsync() with XML text as input.
Something like that:
var xml = "<?xml version=\"1.0\" encoding=\"UTF - 16\" standalone=\"no\" ?><values>42</values>";
webView2Control.CoreWebView2.Navigate("file:///C:/Users/erezf/AppData/Local/Temp/index.html");
var input = "func(" + xml + ")";
await webView2Control.CoreWebView2.ExecuteScriptAsync(input);
The HTML file includes the function func:
<script id="test" type="text/javascript">
function func(xml) { alert(xml); }
</script>
This code doesn't work, why?
Your XML string being passed to the Javascript function is missing single or double quotes. If you look at the input variable in the debugger, it will look like:
func(<?xml version="1.0" encoding="UTF - 16" standalone="no" ?><values>42</values>)
Simply add single quotes like this:
var xml = "'<?xml version=\"1.0\" encoding=\"UTF - 16\" standalone=\"no\" ?><values>42</values>'";
In my case the solution was:
1. add ' ' in the " ".
2. replace the "\n" with "\\n".