こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Perlからjavascript構文の出力について

はじめまして。
現在javascriptを勉強中の者です。

PerlからHTML構文内にjavascript構文を追記し出力しようとしていますが、追記してPerlを実行させただけでInternal Server Errorとなってしまいます。
過去ログをいくつか見させて頂きましたが、自分のソースのどこが悪いのかさっぱりです;;

やりたいことは、登録完了ポップアップを表示させるだけです。
表示条件等は別として、まずjavascript構文をソースに追記してポップアップを表示させたいです。

どうか良きアドバイスをお願い致します。


#!/usr/bin/perl

require "cgi-lib.pl";

print "Content-type: text/html\n\n";
print qq!
<HTML>
<HEAD>
<META Http-Equiv="Content-Type" Content="text/html;charset=EUC-JP">
<META name="robots" content="noindex,nofollow">
<TITLE>登録画面</TITLE>
</HEAD>

<BODY>

<script type="text/javascript">
<!--
alert("登録完了");
// -->
</script>

<FORM ACTION="test.cgi" METHOD="post">
<FONT SIZE="4"><B>登録画面</B></FONT> 
</BODY>

</HTML>
!;

投稿日時 - 2010-12-21 14:41:29

QNo.6398374

困ってます

質問者が選んだベストアンサー

申し訳ない, #2 も言葉がおかしかった. qq で作った文字列が「HEREDOC」のわけなかろうに.

言いたいことは #2 の通りですが, qq!~! が 1つの文字列だ, ってこと. このスクリプト自体はサーバじゃなくても (require 文を消して実行すれば) エラーになるはず.

投稿日時 - 2010-12-21 15:55:25

お礼

早速のご回答ありがとうございます。

出来ました!

> 言いたいことは #2 の通りですが, qq!~! が 1つの文字列だ, ってこと

この「!」ですね。
つまり、qq!~!;で囲んだ中に、<!--という文字列があるために、囲み位置がずれてしまってるってことですね。

こうなるはずだと高を括ってしまったのが最大のBUGでした^^;


助かりました。
本当にありがとうございました。

投稿日時 - 2010-12-21 17:26:47

ANo.3

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

あ, ごめん, HEREDOC だったのね. だったら「最後」は関係ないや.
途中の
<!--
が怪しい気がする. HEREDOC のセパレータを ? など「中に絶対出てこない文字」に変更した方が安全だと思う.

投稿日時 - 2010-12-21 15:41:29

ANo.1

とりあえず最後はおかしい.

投稿日時 - 2010-12-21 15:34:32

あなたにオススメの質問