我正在尝试实现(VoiceXML解释器)。对于不熟悉VoiceXML的用户,该应用程序允许在多个嵌套范围之一中运行JS脚本,这些范围表示为对象。
作用域是会话,应用程序,文档和对话框,按从外到内的顺序排列。
现在,如果脚本在文档范围内运行,它可以从不限定范围的外部范围访问变量和函数,并且所有变量和 它定义的功能被创建为文档作用域的子对象。
离开范围时,将删除其所有子对象。
我设法创建了全局对象,并使用标准的javascript函数填充了该对象
我想实现以下目标。
<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/vxml
http://www.w3.org/TR/voicexml20/vxml.xsd">
<form>
<script>
var now = new Date(); <!-- this has a dialog scope-->
</script>
<var name="seconds" expr="now.getSeconds()"/> <!-- this has a dialog scope-->
<block>
<var name="now" expr="new Date()"/> <!-- this has an anonymous scope -->
<script>
var current = now.getSeconds(); <!-- "now" in the anonymous scope -->
var approx = dialog.now.getSeconds(); <!-- "now" in the dialog scope -->
</script>
</block>
</form>
</vxml>