2009-04-06 6 views
6

Ich habe den folgende JavaScript-Code als Stringliteral:Parsen JavaScript-Code in C#

var $Page = new function() 
{ 
    var _url= 'http://www.some.url.com'; 

    this.Download = function() 
    { 
     window.location = _url; 
    } 
} 

Gibt es eine Weise, die ich den Wert des _url Variable von meinem C# -Code bekommen? Eine Open-Source-Bibliothek vielleicht? Ich machte das mit einem Regulären Ausdruck, aber ich hoffte auf einen eleganteren Weg.

Antwort

2

Sie könnten einen Javascript-Parser verwenden, aber das Parsen von Javascript für genau diesen einen Wert ist wahrscheinlich viel zu viel.

2

Es gibt einen Open-Source-JavaScript-Interpreter in C# unter http://jint.codeplex.com, wenn Sie mehr als nur den Wert benötigen.

+0

Der neueste Link lautet: https://github.com/sebastienros/jint – raider33

+0

+1 für eine Lösung, die auf jeder .NET-Plattform (ich verwende Mono) und benötigt keine externe ausführbare Datei. – raider33

5

Sie sollten sich das Open-Source-Javascript .NET (http://javascriptdotnet.codeplex.com/) auf Codeplex ansehen.

sollten Sie diesem Beispiel Code helfen:

Javascript context = new JavascriptContext(); 
context.Run("var _url= 'http://www.some.url.com';") // You put your javascript in the function run 
String url = (String)context.GetParameter("_url"); // You get your url from javascript 

Das ist es.