2016-11-29 12 views
2

JavaScript関数でローカル値(あらゆる種類、文字列、intなど)を使用する方法があるのだろうかと思っていました。私が何を意味するかを明確にするには:JavaScript関数のローカルC#値を使用

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

を次のように私はそれが前に初期化されたいくつかの値を取り、プレースホルダの上に置きますのWebViewのInvokeScriptAsync方法を使用することになり

私はここWindows Phone 8.1プロジェクトで作業しています。言語はC#です。

これを達成する方法はありますか?

+0

値: たとえば、サーバー側で初期化されるConst String '" abc "の値を取得する必要があります。 1)あなたのAJAX呼び出しのURL準備: は '/ MY_APP/APIのようなAJAX呼び出しのために、適切なパスを準備する/ getConstABC' 2)のような値を取得するために、JS側のAJAX呼び出しを準備JS側 の値を取得します。 : 例えば、AngularJS1の場合: $ http.get( "/ my_app/api/getConstABC")成功(関数(応答){var something = response.data;}); ' – webmaster

答えて

2

のように、それをクライアントに送信する前に、あなたのvariabileを使用してフォーマットすることができ、単純な文字列があるので:

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) 
}); 

デモ:https://dotnetfiddle.net/F6jam9あなたはAjaxがいずれかを取得するには、サーバーへの呼び出しを使用することができます

+0

うわー、これは簡単ですか?私はそれを一瞬で前にして、それがどのように行ったかを教えてくれるでしょう。 –

+0

さて、私は、System.FormatExceptionを受け取っています:入力文字列が正しい形式ではありませんでした。 ヒント? –

+0

@MrMeのために、string.formatのために二重{および}を編集する必要があります。 –

関連する問題