3

我有一个从 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
4

1 回答 1

6

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

你需要:

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

这样的:

myFunction('$perl_variable')

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


作为旁白,您在 JS 中的函数定义也是错误的:

function myFunction(var path){

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

function myFunction(path){
于 2013-03-22T19:18:05.993 回答