当前在我的Visual Studio项目中使用CefSharp来显示Web浏览器。我正在使用EvaluateScriptAsync在我的JavaScript中调用一个函数。

但是我遇到一个小问题。

以下可以工作:

    string strMsg = "12345";
    var script = string.Format("testing({0});", strMsg);
    browser.EvaluateScriptAsync(script);


以下内容不起作用:

    string strMsg = "ABCDE";
    var script = string.Format("testing({0});", strMsg);
    browser.EvaluateScriptAsync(script);


然后在html端:

  testing = function (error) {
      alert(error);
      return false;
  };


为什么我不能发送字母字符串?

发送数字和发送字母之间有区别吗?

最佳答案

您生成的字符串将作为JavaScript执行。正如您在第二个示例中所说的那样,当代码执行时,它将寻找一个名为ABCDE的变量。您需要用引号将其封装为字符串。

string strMsg = "ABCDE";


应该

string strMsg = "`ABCDE`";


要么

string strMsg = "\"ABCDE\"";


对于调试,CefSharp支持DevTools,您可以打开它并查看JavaScript控制台输出。

10-05 17:43