我有一些 Visual Basic 代码:
Dim jsScript As String = <js><![CDATA[
document.all("q").value = "stack overflow";
document.all("search_button_homepage").click();
]]></js>.Value
browser.ExecuteScriptAsync(jsScriptB)
将字符串作为 javascript 执行到 Cefsharp 浏览器中。所以我想将其翻译成 C#,我这样做:
string jscriptB = <js><![CDATA[
document.all("q").value = "stack overflow";
document.all("search_button_homepage").click();
]]></js>.Value
browser.ExecuteScriptAsync(jsScriptB)
我收到一大堆错误消息,例如:
错误 CS0103 当前上下文中不存在名称“文档”
无效的表达式术语“<”
有人可以解释一下发生了什么以及如何解决它吗?我无法想象为什么简单的字符串转换不起作用。感谢您抽出宝贵的时间,祝您有美好的一天。
编辑: 所以我现在有:
var test = @"< js >< ![CDATA[
document.all(""q"").value = ""stack overflow"";
document.all(""search_button_homepage"").click();
]]></ js >.Value";
browser.ExecuteScriptAsync(test);
但它不像 vb 代码那样执行 javascript。谁能解释一下吗?
最佳答案
C# 没有 VB 的 xml 文字功能,因此您必须自己调用 XElement.Parse 方法:
string jsScript = System.Xml.Linq.XElement.Parse("<js><![CDATA[ document.all(\"q\").value = \"stack overflow\"; document.all(\"search_button_homepage\").click(); ]]></js>").Value;
browser.ExecuteScriptAsync(jsScriptB);
关于javascript - VB 到 C# 字符串转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47488763/