我有一个吐出html页面的perl.我想使用jquery操作html页面.我已将所有jquery代码放入字符串并将该字符串放入其中
<script type='javascript'> code </script>
Run Code Online (Sandbox Code Playgroud)
块.但是当我执行perl时,我的所有$符号都被转换为2918 1174 2918.所以如果我的代码$(".className")现在我得到了2918 1174 2918(".className")
有人可以指导我吗?我的代码如下:
my $str = "<html><head><script type='text/javascript' src='js/top5jquery-1.6.2.min.js'>";
$str .="<script type='text/javascript'>$('.submitButton').click(function(){ alert('clicked submit button'); });";
$str .="</head><body><input type='submit' value='submit' />Submitting</body></html>";
my $file_name = "/mainDirectory/myfile";
my $fh;
open ($fh, "> $file_name") or die "Can not open $file_name to write";
print $fh $str;
close($fh);
Run Code Online (Sandbox Code Playgroud)
mob*_*mob 14
$( 是Perl中的有效变量名.
它表示当前进程的"真实组ID",并包含用户所属的所有组ID的空格分隔列表.
要$(...在插入字符串的上下文中使用Perl中的文字,您需要将其转义,例如:
\$(".classname")
Run Code Online (Sandbox Code Playgroud)
Sin*_*nür 10
您应该将HTML和JavaScript放在模板中以避免这些麻烦.请参阅HTML :: Template,HTML :: Zoom和Template Toolkit,以及Perl的其他模板工具.
您问题的直接解决方案是使用:
my $str = q{<script type='text/javascript'>$('.myClassName')</script>};
Run Code Online (Sandbox Code Playgroud)
要么
my $str = <<'EO_HTML';
<html>
<head>
<script type='text/javascript' src='js/top5jquery-1.6.2.min.js'>
<script type='text/javascript'>$('.submitButton').click(function(){
alert('clicked submit button'); });
</script>
</head>
<body>
<input type='submit' value='submit' />Submitting</body>
</html>
EO_HTML
Run Code Online (Sandbox Code Playgroud)
尝试使用'jQuery'而不是'$.' 它具有相同的含义,$只是简写.
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |