想要一个关于如何访问 java 范围内的 javascript 变量的解决方案。 在下面的代码中,<%=toppings[k]%> k 是一个 javascript 变量,我如何访问它,我收到一条消息,因为 k JVM 未知
function value_transitAccountCounter(i){
alert('welcome -->'+i);
for(var k=0;k<5;k++){
if(i==k){
return '<%=toppings[k]%>';
}
}
}
最佳答案
您的 Java 代码正在服务器上运行。您的 JavaScript 代码正在客户端 上运行。所以你不能在服务器上使用k
,它在页面完成、发送到浏览器并执行其中的 JavaScript 之前不存在。
从您的代码来看,您似乎只需要访问存储在服务器端 toppings
数组中的字符串。您有两个选择:
将整个
toppings
数组作为 JavaScript 数组输出到页面脚本。然后你就可以在客户端使用它了。让您的
value_transitAccountCounter
函数生成ajax call到您的服务器端代码,询问toppings[i]
的值是多少。您需要更改value_transitAccountCounter
以接受用于返回值而不是实际返回值的回调,因为 ajax 调用将是异步的(value_transitAccountCounter
将在ajax 调用完成,因此,在您有返回值之前)。 (可能进行同步 ajax 调用,但这是一个非常非常糟糕的主意,你最好假装它不可能。它会在调用时完全锁定大多数浏览器的 UI执行,令人难以置信刺激用户。)
关于java - 在 java 函数中使用 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5934312/