在Perl-CGI生成的页面中包含JavaScript

时间:2010-11-05 17:52:18

标签: javascript html perl include cgi

我试图将一个java脚本添加到动态生成的页面中。 我尝试过这个,但似乎没有用。

<SCRIPT SRC=\"sorttable.js\"></SCRIPT>

我总是需要将javacode与html一起内联才能工作。 有线索吗?

3 个答案:

答案 0 :(得分:3)

qq()相当于"",但具有匹配的分隔符。如果您要输出HTML或JavaScript,它将成为您的朋友。

print qq(<script type="text/javascript">alert("The world is my oyster");</script>);

请注意,您不必使用()作为分隔符,请参阅perlop

如果您要输出构建HTML的JavaScript,则应使用jQueryExt。但无论哪种方式,你都将陷入多层次的逃避之中。 JSON::XS可能会让你的生活变得更加痛苦。还要了解here-documents

my $js = <<'JS';
    alert( 'The world is my oyster' );
    var $href = "example.html";
    document.write( '<a href="' + $href + '">clicky</a>' );
JS
print qq(<script type="text/javascript">$js</script>);

关于上述内容的棘手问题是$href是一个JavaScript变量,而不是Perl变量。 (是的,JS标识符可能包含$。)

答案 1 :(得分:2)

也许这个链接可能会有所帮助: http://perlmeme.org/tutorials/cgi_form.html

它提供了将jsp函数嵌入到form-onsubmit中的方法,如下所示:

  

print $ q-&gt; start_form(         -name =&gt; 'main_form',         -method =&gt; '得到',         -enctype =&gt; &安培; CGI :: URL_ENCODED,

  -onsubmit => 'return javascript:validation_function()',
  -action => '/where/your/form/gets/sent',   );

Perl5 CGI库有以下链接 - 支持Javascript,它是关于将javascript函数链接到事件。 http://cpansearch.perl.org/src/MARKSTOS/CGI.pm-3.60/cgi_docs.html#javascripting

此致

答案 2 :(得分:0)

这取决于 WHOLE 事物的引用结构。如果您在未插入的 heredoc 中打印出来,那么\"只会产生更大的问题。

   print <<'END_HTML';
   ...
      <SCRIPT SRC=\"sorttable.js\"></SCRIPT>
   ...
   END_HTML

或q表达式:

  print q~
   ...
      <SCRIPT SRC=\"sorttable.js\"></SCRIPT>
   ...
   ~;

所以你必须展示更多你的背景。但请允许我向您保证:当我以正确的方式写出标签时,我的JavaScript文件就会像我期望的那样进入页面。