我正在创建一个用于OpenWrt LuCI Web界面的HTML文件。正如这里所讨论的:http://luci.subsignal.org/trac/wiki/Documentation/Templates我使用Lua Markup语言来运行一个名为runDiag的Lua函数,我需要将javascript变量选项传递给runDiag函数。我无法弄清楚如何使这项工作。我已经尝试对displayDiag函数内的标记进行各种修改,但没有成功。
有人可以帮忙吗?
示例:
<%-
function runDiag(option)
return option
end
-%>
<script>
function displayDiag() {
var option = document.getElementById('iface').value;
document.getElementById('diag_text').innerHTML = '<%- write (runDiag(option)) -%>';
}
</script>
答案 0 :(得分:1)
你不能这样做。 Lua模板在服务器上运行,JavaScript代码在客户端(即Web浏览器)上运行。他们无法沟通。
Lua代码只生成一个HTML文件发送给客户端。它不了解JavaScript;它只是它给客户的一些文字。这里,option
指的是一个不存在的Lua变量,其值为nil
。
相反,JavaScript代码不了解服务器端Lua代码。它只是获得服务器生成的任何内容。因此,它只看到这一行:
document.getElementById('diag_text').innerHTML = 'nil';
要与Web服务器通信,您需要使用AJAX或其他协议。