无法在VoiceXML中调用javascript函数

无法在VoiceXML中调用javascript函数,javascript,vxml,Javascript,Vxml,当我分别运行JavaScript和VXML代码时,它们工作正常。但当我试图通过VXML代码调用JavaScript函数时,它不起作用。请在下面找到VXML代码。请帮我解决这个问题 <vxml version="2.1"> <form id="selectSong"> <block> <script> <![CDATA[ functi

当我分别运行JavaScript和VXML代码时,它们工作正常。但当我试图通过VXML代码调用JavaScript函数时,它不起作用。请在下面找到VXML代码。请帮我解决这个问题

<vxml version="2.1">
    <form id="selectSong">
        <block>
            <script>
                <![CDATA[
                function selectSong()
                {
                    var number = 1;
                    var currSong = '../songs/buddhist/0001.wav';
                    var fields = currSong.split('/');
                    var song = fields[3];

                    var fields_song = song.split('.');
                    var num = fields_song[0];

                    if (number == 1) {
                        num++;
                    } else if (number == 2) {
                        num--;
                    }

                    if (num > 9 && num < 99)
                    {
                        return "'../songs/buddhist/00" + num + ".wav'";
                    } else if (num < 9 && num > 0) {
                        return "'../songs/buddhist/000" + num + ".wav'";
                    } else if (num > 99 && num > 999) {
                        return "'../songs/buddhist/0" + num + ".wav'";
                    } else {
                        return "'../songs/buddhist/" + num + ".wav'";
                    }
                }
                ]]>
            </script>
        </block>
        <block>
            <prompt>
                <audio expr="'../Prompts/Press1.wav'" />
                <audio expr="'../Prompts/SelectLangPreference.wav'" />                
            </prompt>
        </block>
        <field name="getNum" >
            <grammar xml:lang="en-US" root = "MYRULE" mode="dtmf">
                <rule id="MYRULE" scope = "public">
                    <one-of>
                        <item> 1 </item>
                        <item> 2 </item>
                        <item> 3 </item>
                        <item> 4 </item>
                    </one-of>
                </rule>
            </grammar>
            <filled namelist="getNum" mode="all">
                <if cond="getNum == 1">
                    <prompt>
                        <audio expr="selectSong()" />
                    </prompt>
                </if>
            </filled>
        </field>
    </form>‍‍‍‍‍‍‍
</vxml>

9&&num<99)
{
返回“../songs/farminal/00”+num+“.wav”;
}else if(num<9&&num>0){
返回“../songs/farminal/000”+num+“.wav”;
}否则如果(num>99&&num>999){
返回“'../songs/farminal/0”+num+“.wav';
}否则{
返回“'../songs/farminal/”+num+“.wav';
}
}
]]>
1.
2.
3.
4.
‍‍‍‍‍‍‍
“块”元素生成。 因为变量无法到达“field”元素。 也许你有两个解决办法

  • 删除“块”元素和外部“脚本”元素
  • 将“script”元素移动到外部“form”元素
  • “块”元素使。 因为变量无法到达“field”元素。 也许你有两个解决办法

  • 删除“块”元素和外部“脚本”元素
  • 将“script”元素移动到外部“form”元素

  • 更具体地描述你所看到的。VoiceXML浏览器是否引发异常?你没有得到你期望的结果吗?是不是找不到音频文件?请更具体地说明您看到的内容。VoiceXML浏览器是否引发异常?你没有得到你期望的结果吗?它找不到音频文件吗?