0
Thumbsup

いい質問だ

0

Thumbsdown

うーん

webview evalJSに変数を入れる場合

shamo
shamo 0

投稿日:2015-03-30 17:27:18

簡単なことかもしれませんが、ご質問させてください。

webviewを使ってとあるページの要素に対して文字列を入れたいのですが、

webView.evalJS('document.~.value = "test"');

これだとうまくいくのに、

var test = aaa;
webView.evalJS('document.~.value = test');

のように変数にすると入れる事が出来ません。
webViewの上に置いたボタンのクリックイベント内です。

解決策についてお心あたりのある方、どうかよろしくお願いします。



回答

k0sukey
k0sukey
360
Tcad_icon Tcmd_icon

Thumbsup

いい回答

1

Thumbsdown

うーん



var test = aaa;
webView.evalJS('document.~.value = "' + test + '"');

こんな感じでどうでしょう。


できました!ありがとうございます! もしよければ、なぜお答えいただいたような書き方でうまくいくのか教えていただけませんでしょうか? 前にも同じようなとこで詰まり、同じような書き方で解決したことがありましたが、よくわかってなくて…。 --- shamo

k0sukey
k0sukey
360
Tcad_icon Tcmd_icon

Thumbsup

いい回答

1

Thumbsdown

うーん



var test = aaa;
webView.evalJS('document.~.value = test');

これだと少々ややこしいのですが、「test」はevalJS内での変数として扱われてしまいます。
ですので私の回答にあるよう、連結してあげて、かつ、文字列として代入できるよう「"」で括ってあげる必要があります。


遅くなってすいません、ありがとうございました。 また質問させていただく機会がありましたらよろしくお願いします。 --- shamo

ログインすると回答することができます。