如何将Perl变量传递给Javascript函数?

时间:2013-03-22 19:15:33

标签: javascript perl

我有一个打印出html页面的Perl脚本。我想用javascript来弹出提醒信息。警报消息在perl变量中定义为字符串。我试图将perl变量值传递给javascript函数作为参数,但它不起作用。请帮忙。

$perl_variable = "Welcome"; # alert msg

print <<START

<HTML>

some html code....

<p>Click the button to wait 3 seconds, then alert "Hello".</p>

<button onclick="myFunction('$perl_variable')">Try it</button>

<script>

function myFunction(var message){

setTimeout(function(){alert(message)},3000);

}

</script>

</HTML>

START

1 个答案:

答案 0 :(得分:5)

注意:这个答案的前半部分是指问题中最初(编辑前)的代码。

你需要:

  1. 使用正确的变量名称
  2. 生成JavaScript字符串文字(通过引用数据)
  3. 这样:

    myFunction('$perl_variable')
    

    请注意,如果您的数据可能包含JavaScript字符串文字中不允许的字符(例如新行),则字符串文字中具有特殊含义的字符(例如用于分隔它的引号)或字符在HTML中有特殊含义(例如分隔属性值的引号),那么你还需要执行适当的转义(分两步,首先是JS,然后是HTML)。


    另外, JS中的函数定义也是错误的:

    function myFunction(var path){
    

    FormalParameterList中不能使用var关键字。那应该是:

    function myFunction(path){