Javascript 在一个java脚本函数中传递2个变量
我使用以下代码将一个变量从Java类传递到Web视图:Javascript 在一个java脚本函数中传递2个变量,javascript,android,android-webview,Javascript,Android,Android Webview,我使用以下代码将一个变量从Java类传递到Web视图: web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\");};"); 并使用Java脚本代码: function setValue(amount1) { myValue = amount1; document.getElementById("amount").value = myValue; } 现在我只想在一个
web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\");};");
并使用Java脚本代码:
function setValue(amount1)
{
myValue = amount1;
document.getElementById("amount").value = myValue;
}
现在我只想在一个函数名setValue中传递两个变量
有什么想法吗
web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\",\""+ amount2 +"\");};");
function setValue(amount1, amount2)
{
myValue = amount1;
document.getElementById("amount").value = myValue;
}
请告诉我它是否有效。从表面上看,我认为它很简单
web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\",\""+ amount2 +"\");};");
及
但是如果你能对你正在做的事情多解释一点,我们可能会提供一个更好的解决方案。如果你沿着这条路走下去,尽管我相信你正在做的事情会有更优雅的解决方案。。。最好发送一个包含所有要设置的键和值的对象:
setValue({amount1:'amount1', amount2:'amount2'});
这种结构比定义sperate变量更具可扩展性。您所需要做的就是确保您的密钥通过某种标准化的命名约定连接到其目标输入,您可以使用如下功能:
function(obj){
var i, elm;
for( i in obj ) {
if ( (elm = document.getElementById(i)) ) {
elm.value = obj[i];
}
}
}
通过标准化命名约定,我的意思是,您的密钥名称与其目标输入的名称相匹配。因此,您的目标页面上有id=“amount1”的输入,另一个页面上有id=“amount2”的输入。还请记住,如果您发送的是“金额”,我猜它们是数字。。如果是这样,您不需要将它们作为字符串发送,这意味着您可以避免“转义”
我只想将html文本框文本设置为amount 1和amount 2的值。
function(obj){
var i, elm;
for( i in obj ) {
if ( (elm = document.getElementById(i)) ) {
elm.value = obj[i];
}
}
}
web.loadUrl(
"javascript:window.onload = function(){setValue({amount1:123, amount2:5});};"
);