ここで何が起こっているのか正確にはわからないので、この問題をデバッグするのに苦労しています。これは、html を出力するだけの非常に単純な私の perl スクリプトの例です。
#!/usr/bin/perl -w
use strict;
use warnings;
use HTML::Template;
my $template_object = qq|<html>
<head>
<title>Test</title>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
alert("here");
});
</script>
</body>
</html>|;
my $template = HTML::Template->new(scalarref => \$template_object);
print "Content-type: text/html\n\n";
print $template->output();
問題は、これを実行すると JS アラートが表示されず、ソースを見ると $( 関数に 500 500 が含まれていることです。ソースは IE と FF の両方で次のようになります。
<html>
<head>
<title>Test</title>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
500 500function() {
alert("here");
});
</script>
</body>
</html>
それは HTML::Template のものではありません (私はそれなしで試してみましたが、同じ結果が得られました)。
ティア