-PR-
解決済み

CGIの中にJAVA Script

  • 暇なときにでも
  • 質問No.69241
  • 閲覧数155
  • ありがとう数8
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 64% (252/388)

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で「"」や「;」をとってしまうと
動作しなくなりました。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル11

ベストアンサー率 61% (157/255)

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

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

Perlの書籍やインターネットなどで、『ヒアドキュメント』を調べましょう!
お礼コメント
xiaolong_goo

お礼率 64% (252/388)

遅くなりましたがありがとうございました。
その方法で解決しました。
投稿日時 - 2001-07-05 17:23:53
関連するQ&A
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.2
レベル11

ベストアンサー率 61% (157/255)

はうぁ!! print << "THE_JAVASCRIPT"; ここはセミコロンいります。
はうぁ!!
print << "THE_JAVASCRIPT"; ここはセミコロンいります。


  • 回答No.3
レベル9

ベストアンサー率 37% (29/78)

"の前に\を付けて\"のようにすれば大丈夫ですよ。 私もこの作業をよく見落としてinternal server errorになっちゃいます(^^; ...続きを読む
"の前に\を付けて\"のようにすれば大丈夫ですよ。
私もこの作業をよく見落としてinternal server errorになっちゃいます(^^;
お礼コメント
xiaolong_goo

お礼率 64% (252/388)

遅くなりましたがありがとうございました。
しかし、かなりの量のテキストだったら大変ですね。
投稿日時 - 2001-07-05 17:26:26
  • 回答No.4
レベル12

ベストアンサー率 75% (398/526)

 通常はkokucho81さんの言う通り、ヒアドキュメントを使うことをおすすめします。  またヒアドキュメントは行数がかさむので、1行のprint文内で処理したい場合は、makihiroさんのように「\」を直前につけて「"」をエスケープする(単なる文字として認識させる)ようにします。  ただこの方法は文字列が見にくくなる為、ミスの元になることが多いので、qqを使って   print q ...続きを読む
 通常はkokucho81さんの言う通り、ヒアドキュメントを使うことをおすすめします。

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

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

お礼率 64% (252/388)

遅くなりましたがありがとうございました。
print qq{<BODY onLoad="OnLoad()">}; ・・・なんて方法もあるんですね。
いろいろと参考にさせていただきました。
投稿日時 - 2001-07-05 17:28:16
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ