我想在我的C#程序中托管Javascript。我希望允许用户编写自定义的Javascript代码,并使我的C#程序运行他们的函数,同时允许用户使用我的框架代码。
是否可以做到这一点?如果可以,怎么做?
编辑:明确一下,我没有在此项目中使用ASP.NET。
是否可以做到这一点?如果可以,怎么做?
编辑:明确一下,我没有在此项目中使用ASP.NET。
现在,“external”类的任何公共成员都可以通过javascript中的window.external访问。此外,从托管代码方面,您可以使用document的InvokeScript方法调用任何javascript函数。
通过这种方式,可以轻松地在两者之间传递复杂对象。
我在这个Google Earth Api应用程序中经常使用这个想法。 http://fraserchapman.blogspot.com/2008/08/google-earth-plug-in-and-c.html
Spidermonkey .NET 可能是你正在寻找的东西。
我不确定它有多发达。但它基本上是Mozilla's Spidermonkey JavaScript解析引擎的一个移植版本,我非常喜欢它。
或者你可以直接评估它。
以前实现这个的方法是使用Windows脚本宿主,它允许您托管JSCript或VBScript。
你可以在C#中本地运行Javascript - 可以参考this article。让Javascript访问你的框架可能会更棘手,也许Script#能够帮助?
有一些 HTML 组件可以嵌入 JavaScript。而对于另一种情况,最好的方法是使用 ASP.NET Web 服务。也许通过一个智能客户端,你可以将两者结合起来。