4

我正在尝试在 C# 应用程序中运行less.js。我尝试使用JavaScript.net运行默认发行版,但出现 window is undefined 错误。我认为这是因为它不是在浏览器中运行,而是在 JS 引擎上运行。是否有任何解决方法/任何指向资源的指针可以提供帮助?

4

3 回答 3

8

您可能应该运行.Less。如果我理解正确,您正在尝试通过 Javascript 解释器在服务器上运行 less.js。为什么不直接跳过解释器并使用所有 .NET 代码运行 LESS 转换?更少的痛苦和开销。

于 2010-07-20T02:30:30.050 回答
0

这更像是一个猜测而不是一个真正的答案,但我会尽力提供帮助,所以如果它是错误的,请不要投反对票。但根据文档(我从未使用过 Javascript.net),以下内容是有效的:

// Initialize the context
JavascriptContext context = new JavascriptContext();

// Setting the externals parameters of the context
context.SetParameter("console", new SystemConsole());
context.SetParameter("message", "Hello World !");
context.SetParameter("number", 1);

// Running the script
context.Run("var i; for (i = 0; i < 5; i++) console.Print(message + ' (' + i + ')'); number += i;");

// Getting a parameter
Console.WriteLine("number: " + context.GetParameter("number"));

也许您应该将窗口设置为上下文的参数,如下所示:

context.SetParameter("window", new YourWindow());

并确保您提供的窗口具有相同的属性/方法/等。作为标准浏览器窗口。

另外 您可以尝试实现一个简单的窗口,只要在控制台上调用某个函数,它就会写入控制台。除非有原因,Javascript.Net 为您提供了一个窗口包装器(虽然看起来不像)

于 2010-07-16T16:10:19.380 回答
0

Less.js 表明它打算在 Node.js 下运行。因为听起来您正在编写一个 .NET 应用程序,为什么不看看Node.net是否会帮助您呢?

于 2010-07-19T11:33:36.147 回答