2016-11-29 3 views
2

ich mich gefragt, ob es einen Weg gibt lokale Werte zu verwenden (jeglicher Art, String, int, etc.) in JavaScript Funktion. Um zu klären, was ich meine:Verwenden Sie lokale C# Werte in JavaScript-Funktion

würde ich eine InvokeScriptAsync Methode von WebView werden wie folgt verwendet wird

string invokeScripts = await webView.InvokeScriptAsync("eval", new[] 
{ 
    @"(function() 
    { 
     var x = document.getElementsByName(HERE I WANT MY LOCAL VALUE)[0].tagName; 
     x.setAttribute('value', 'myValue'); 
    })()" 
}); 

So würde es einen Wert nehmen, der vor initialisiert wurde und legen Sie es auf Platzhalter.

Ich arbeite an Windows Phone 8.1 Projekt hier und die Sprache C#.

Gibt es Möglichkeiten, dies zu erreichen?

+0

Sie können Ajax auf Ihrem Server ruft jeder zu bekommen Wert Sie wollen: zum Beispiel müssen Sie den Wert eines Konst String '„abc“' erhalten, die auf der Serverseite initialisiert wird. 1) Bereiten Sie Ihre URL Ajax-Aufruf: einen geeigneten Weg wie für eine Ajax-Aufruf vorbereiten '/ my_app/api/getConstABC' 2) Holen Sie Wert auf js Seite einen Ajax-Aufruf an js Seite Bereiten Sie den Wert wie zu bekommen : Zum Beispiel in AngularJS1: '$ http.get ("/mein_app/api/getConstABC "). Erfolg (Funktion (Antwort) {var etwas = Antwort.data;});' – webmaster

Antwort

2

Da eine einfache Zeichenfolge ist, dass Sie es Ihre variabile mit formatieren können, bevor sie an den Client zu senden, wie:

string invokeScripts = await webView.InvokeScriptAsync("eval", new[] 
{ 
    String.Format(@"(function() 
    {{ 
     var x = document.getElementsByName('{0}')[0].tagName; 
     x.setAttribute('value', 'myValue'); 
    }})()",HERE I WANT MY LOCAL VALUE) 
}); 

Demo: https://dotnetfiddle.net/F6jam9

+0

Wow, das ist einfach? Ich werde es in einer Sekunde geben und Sie wissen lassen, wie es ging. –

+0

Ok, ich habe eine 'System.FormatException' mit zusätzlichen Informationen zu folgendem Befehl erhalten: Die Eingabezeichenfolge hatte kein richtiges Format. Irgendwelche Hinweise? –

+0

@MrMe wegen string.format Sie verdoppeln müssen {und}, bearbeitet –

Verwandte Themen