如何在LuCI Lua标记中使用javascript变量?

时间:2014-04-23 03:01:07

标签: javascript lua openwrt

我正在创建一个用于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>

1 个答案:

答案 0 :(得分:1)

你不能这样做。 Lua模板在服务器上运行,JavaScript代码在客户端(即Web浏览器)上运行。他们无法沟通。

Lua代码只生成一个HTML文件发送给客户端。它不了解JavaScript;它只是它给客户的一些文字。这里,option指的是一个不存在的Lua变量,其值为nil

相反,JavaScript代码不了解服务器端Lua代码。它只是获得服务器生成的任何内容。因此,它只看到这一行:

document.getElementById('diag_text').innerHTML = 'nil';

要与Web服务器通信,您需要使用AJAX或其他协议。