【问题标题】:How to load jquery file in c# code using V8ScriptEngine (Clearscript)?如何使用 V8ScriptEngine (Clearscript) 在 c# 代码中加载 jquery 文件?
【发布时间】:2019-05-13 10:51:00
【问题描述】:

我正在尝试使用 ClearScript(V8ScriptEngine) 从 c# 代码执行 javascript 函数。这里 Script_Text 是 javascript 代码。我想从 jquery 调用 api 并在 C# 中加载 Execute 函数。我遇到了 $ 未定义之类的异常。如何使用 clearscript(V8ScriptEngine) 在 C# 中加载 jquery?

C#代码:

public dynamic GetText(string Script_Text, List<object> paraList)
{
  V8ScriptEngine _v8Engine = new V8ScriptEngine(V8ScriptEngineFlags.EnableDebugging);     
 _v8Engine.Execute(Script_Text);
  object returnedVal = _v8Engine.Script.Execute();      
  return returnedVal;
}

Javascript 函数:

function Execute(){
    $.ajax({
      type: 'GET',                
      url: "http://172.29.134.69:9006/api/Line/GetStationDefectsByStationIdstationId=1",
      success: function (data) {
      alert(data);
      },
      error: function (error) {
        alert("Fail");
        }
      });

【问题讨论】:

    标签: jquery v8 clearscript


    【解决方案1】:

    您可以在运行脚本之前下载并尝试执行 jQuery,但这可能会失败,因为裸 JavaScript 环境缺少 jQuery 所依赖的 DOM。

    您可以提供一个 DOM 实现来支持 jQuery,但我怀疑这将是一项巨大的工作,尽管有一些公共项目(例如 jsdom)可能会有所帮助。

    如果您只需要 ajax 和 alert,那么用 C# 或其他 .NET 语言实现它们并公开它们以供脚本编写会容易得多。

    【讨论】:

    • 这不是使用ajax或alert。我将在.txt文件中上传javascript函数并在C#中动态执行它。所以请建议我编写javascript函数来调用api的方法以及如何在 C# 中加载并执行函数。
    • 您可以公开C#对象、类型、委托等,并从JavaScript中使用它们; GitHub 上有一个 ClearScript 教程。你不能轻易使用 jQuery,因为 jQuery 本身需要 DOM,它通常由 Web 浏览器提供,但不是标准 JavaScript 的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多