想要一个关于如何在java作用域内访问javascript变量的解决方案。在下面的代码中, < %= toppings [k]%>* k是一个JavaScript变量,我如何访问它,我收到一条消息,因为 JVM不知道 k *
function value_transitAccountCounter(i){ alert('welcome -->'+i); for(var k=0;k<5;k++){ if(i==k){ return '<%=toppings[k]%>'; } } }
您的Java代码正在 服务器上 运行。您的JavaScript代码正在 客户端上 运行。因此,您无法k在服务器上使用它,直到页面完成,发送到浏览器并执行其中的JavaScript之前,它不存在。
k
从您的代码看来,您只需要访问存储在服务器端toppings数组中的字符串。您有两种选择:
toppings
将整个toppings数组作为JavaScript数组输出到页面的脚本。然后,您可以在客户端使用它。
让您的value_transitAccountCounter函数对服务器端代码进行ajax调用,询问toppings[i]is 的值是什么。您需要更改value_transitAccountCounter以接受用于返回值而不是实际返回值的回调,因为ajax调用将是异步的(value_transitAccountCounter将在ajax调用完成之前返回,因此在您具有要返回的值之前)。( 可以 进行同步ajax调用,但这是一个非常非常糟糕的主意,最好不要假装这是不可能的。它会在调用执行时完全锁定大多数浏览器的UI,这对用户来说 非常 令人讨厌。 )
value_transitAccountCounter
toppings[i]