【问题标题】:How to pass Perl variable into Javascript function?如何将 Perl 变量传递给 Javascript 函数?
【发布时间】:2013-03-23 03:26:50
【问题描述】:

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

【问题讨论】:

  • 您的意思是perl_variable 而不是path_qa_image?查看浏览器的错误控制台;没有引用变量可能会导致错误。
  • 更正注释 - 文件路径在 perl 变量中定义以警告消息
  • 我已编辑您的问题以删除对 PERL 的引用; perl is not an acronym.
  • 虽然在这种情况下,根据经验,当您从另一种编程语言生成一种编程语言并且最终结果不起作用时,很容易看出哪里出了问题 - 然后首先确定是否问题是你不知道如何生成你想要的代码(在这种情况下显示两组代码)或者你不知道你应该生成什么代码(在这种情况下只显示生成的结果和描述其行为与您的预期有何不同)。

标签: javascript perl


【解决方案1】:

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

你需要:

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

这样的:

myFunction('$perl_variable')

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


顺便说一句,你在 JS 中的函数定义也是错误的:

function myFunction(var path){

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

function myFunction(path){

【讨论】:

    猜你喜欢
    • 2018-10-21
    • 2017-01-22
    • 1970-01-01
    • 2016-08-21
    • 2015-05-02
    • 2015-06-08
    • 2017-11-30
    • 2015-07-10
    相关资源
    最近更新 更多