アプリ版:「スタンプのみでお礼する」機能のリリースについて

CGIプログラムはまったくの初心者です。
perlでCGIプログラムを組んで、HTMLを書き出すときに
Java Scriptもいっしょに書き出すことはできますか?

print "Content-type: text/html\n\n";
print "<html><head><title>$title</title>\n";
---この間に入れたいのですが・・・---
print "</head>\n";
print "<body topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 bgcolor=$bg_color text=$text_color link=$link_color vlink=$vlink_color background=$bg_gif>\n";

Java Scriptの menu_0.addMenuItem("ショップ案内","location='shop.html'"); 等を入れるときに
「"」や「;」はどういう風に表現すればうまくいくのでしょうか。

Java Script以外のタグの中の<font size="2">などは「"」をとれば
大丈夫なのは知っていますが、Java Scriptで「"」や「;」をとってしまうと
動作しなくなりました。

A 回答 (4件)

大体ながながとHTMLやJavaScriptを記述するときには、『ヒアドキュメント』という機能を使うと話しが簡単だと思います。



print << "THE_JAVASCRIPT" ← ここは適当に名前をつけます。
<script language="javascript"><!--
ここは、かきたいようにjavascript書けば良いです。
$titleなどの変数はちゃんと展開されます。
//--></script>
THE_JAVASCRIPT ← ここはコロンをつけてちゃダメ♪

Perlの書籍やインターネットなどで、『ヒアドキュメント』を調べましょう!
    • good
    • 0
この回答へのお礼

遅くなりましたがありがとうございました。
その方法で解決しました。

お礼日時:2001/07/05 17:23

 通常はkokucho81さんの言う通り、ヒアドキュメントを使うことをおすすめします。



 またヒアドキュメントは行数がかさむので、1行のprint文内で処理したい場合は、makihiroさんのように「\」を直前につけて「"」をエスケープする(単なる文字として認識させる)ようにします。
 ただこの方法は文字列が見にくくなる為、ミスの元になることが多いので、qqを使って
  print qq{<BODY onLoad="OnLoad()">};
などのようにした方がよいでしょう。
(qqの区切り文字は{}でなくてもよいのですが、HTMLやJavaScriptでは絶対使わない文字を指定するようにすると、バグ予防になります。)

 それからHTMLタグ内でも、"は省略しない方がいいですよ。value値がスペース交じりの文字列の場合や、値に指定した変数がヌルだった場合などに、予期しない動作をすることがあります。
    • good
    • 0
この回答へのお礼

遅くなりましたがありがとうございました。
print qq{<BODY onLoad="OnLoad()">}; ・・・なんて方法もあるんですね。
いろいろと参考にさせていただきました。

お礼日時:2001/07/05 17:28

"の前に\を付けて\"のようにすれば大丈夫ですよ。


私もこの作業をよく見落としてinternal server errorになっちゃいます(^^;
    • good
    • 0
この回答へのお礼

遅くなりましたがありがとうございました。
しかし、かなりの量のテキストだったら大変ですね。

お礼日時:2001/07/05 17:26

はうぁ!!


print << "THE_JAVASCRIPT"; ここはセミコロンいります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!