0

次のコードを使用して、Java クラスから Web ビューに 1 つの変数を渡しています。

web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\");};");

および Java Script コードを使用すると、次のようになります。

function setValue(amount1)
    {
    myValue = amount1;

    document.getElementById("amount").value = myValue;
}

今、私は1つの関数名setValueで2つの変数を渡したいだけです

何かご意見は?

4

3 に答える 3

1

一見すると、それは同じくらい簡単だと思います

web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\",\""+ amount2 +"\");};");

function setValue(amount1, amount2)
{
    myValue1 = amount1;
    myValue2 = amount2;

    document.getElementById("amount1").value = myValue1;
    document.getElementById("amount2").value = myValue2;
}

しかし、あなたがしていることについてもう少し説明できれば、私たちはより良い解決策を提供できるかもしれません。

于 2012-08-06T07:45:19.260 に答える
0
web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\",\""+ amount2 +"\");};");

function setValue(amount1, amount2)
    {
    myValue = amount1;

    document.getElementById("amount").value = myValue;
}

動作するかどうか教えてください。

于 2012-08-06T07:44:58.987 に答える
0

このルートを進む場合は、実行していることに対してより適切な解決策があると確信していますが、設定したいすべてのキーと値を含むオブジェクトを送信することをお勧めします。

setValue({amount1:'amount1', amount2:'amount2'});

この構造は、個別の変数を定義するよりもはるかに拡張可能です。必要なのは、キーが宛先入力に何らかの標準化された命名規則で結び付けられていることを確認することだけです。次のような関数を使用できます。

function(obj){
  var i, elm;
  for( i in obj ) {
    if ( (elm = document.getElementById(i)) ) {
      elm.value = obj[i];
    }
  }
}

標準化された命名規則とは、キー名が宛先入力のキー名と一致することを意味します。したがって、宛先ページにid = "amount1"の入力と、id="amount2"の入力があります。また、「金額」を送信する場合は数値であると思います。その場合は、文字列として送信する必要はありません。つまり、「」エスケープを回避できます。

web.loadUrl(
  "javascript:window.onload = function(){setValue({amount1:123, amount2:5});};"
);
于 2012-08-06T07:56:32.897 に答える