• ベストアンサー
  • 困ってます

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> !;

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数155
  • ありがとう数4

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

  • ベストアンサー
  • 回答No.3
  • Tacosan
  • ベストアンサー率23% (3656/15482)

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

早速のご回答ありがとうございます。 出来ました! > 言いたいことは #2 の通りですが, qq!~! が 1つの文字列だ, ってこと この「!」ですね。 つまり、qq!~!;で囲んだ中に、<!--という文字列があるために、囲み位置がずれてしまってるってことですね。 こうなるはずだと高を括ってしまったのが最大のBUGでした^^; 助かりました。 本当にありがとうございました。

関連するQ&A

  • このソースどういう意味ですか【JavaScript】

    <HTML> <HEAD> <TITLE>JavaScript Sample</TITLE> <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> </HEAD> <BODY> : <INPUT TYPE="button" VALUE="OK" onClick="~"> : </BODY> </HTML> このソースの中の <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> の部分ってどういう意味ですか? 特にTypeとHTTP-EQUIVの部分については個別で詳しく知りたいです。 回答よろしくお願いします。

  • 以下のようなものを作ったのですが、cgiによるjavascript出力

    以下のようなものを作ったのですが、cgiによるjavascript出力がうまくいきません。 理由がわからず困っています。 【http://www.gran-fenix.com/nao_archive/test/index.htm】 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>テスト</title> <script type="text/javascript"><!-- var pageseq = 0; //--></script> <script src="./trick/test.cgi"></script> </head> <body style="background-color:white"> <noscript><p style="color:deeppink;font-weight:bold"> 【注意】 JavaScript が無効になっています。 </p></noscript> <br> <h1 style="font-size:200%;font-weight:bold;color:maroon"> <script type="text/javascript">document.write(page_title[pageseq]);</script> </h1> <hr> </body> </html> 【http://www.gran-fenix.com/nao_archive/test/trick/test.cgi】 #!/usr/local/bin/perl $jscr = 'test.txt'; $scr_body = ''; open (JSCR "<$jscr") || die "Can't open the JavaScript file\n"; while (<JSCR>) { $scr_body .= $_; } close (JSCR); print "Content-Type: text/javascript\n\n"; print <<"SCR"; $scr_body SCR 【http://www.gran-fenix.com/nao_archive/test/trick/test.txt】 var page_title = new Array(); page_title[0] = "テスト成功"; 具体的には、test.txtにある「テスト成功」の文字がHTMLのh1タグ部分に出力されません。 HTMLで、scriptタグのsrcを、test.txtと同じ内容のJSファイル test.js(場所も同じディレクトリ)にしてみると成功するので、原因はcgiにあると思うのですが、どこがおかしいのかわかりません。 なお、test.cgiのパーミッションは755、test.txtのパーミッションは644です。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • PHP+MySQLで結果を出力したHTMLに、Javascriptの文を入れるにはどうしたらよいでしょうか。

    PHP+MySQLで結果を出力したHTMLに、Javascriptの文を入れるにはどうしたらよいでしょうか。 <html> <head> <meta HTTP-EQUIV="Content-type" CONTENT="text/html; charset=euc-jp"> </head> <title>名称</title> <? SQL文省略 print("<script type="text/javascript" src="http://x8.hatiju-hatiya.com/ufo/110179001"></script><noscript><a href="http://x8.hatiju-hatiya.com/bin/gg?110179001" target="_blank"><img src="http://x8.hatiju-hatiya.com/bin/ll?110179001" border="0"></a><br><span style="font-size:9px">[PR] <a href="http://fucoidan.rental-rental.net" target="_blank">フコイダン</a></span></noscript>"); SQL文省略 ?> </body> </html>

    • ベストアンサー
    • PHP

その他の回答 (2)

  • 回答No.2
  • Tacosan
  • ベストアンサー率23% (3656/15482)

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

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • Tacosan
  • ベストアンサー率23% (3656/15482)

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

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • perlでgifが出てこない。

    こんな感じなんですけど どうも画像が出てこないんですよね。(a.gif) たぶん簡単なことなんで速攻ポイント出して締め切ります。 print "Content-type: text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<meta http-equiv=\"content-type\" content=\"text/html; charset=shift-jis\">\n"; print "<title>$mail_title</title>\n"; print "</head>\n"; print "<body bgcolor=\"$bgcolor\" text=\"$text\">\n"; print "<img src =\"a.gif\"alt=\"$n\" height=\"32\" widht=\"32\"border=\"0\">\n"; print "<br><br>\n";

  • ホームページでのジャバスクリプトについて

    下記の記述でimport行を書くと構文エラーになりました。 解決方法を教えてください。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <META http-equiv="Content-Script-Type" content="text/javascript"> <TITLE>2013秋限定</TITLE> <SCRIPT language="JavaScript"> <!-- import javax.swing.JFrame; import javax.swing.JOptionPane; function chk8() { JFrame parent = ...; JOptionPane.showMessageDialog(parent, "合計が8個になっていません、\nもう一度入力してください。", "入力エラー", JOptionPane.WARNING_MESSAGE); return true; } //--> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff"> ・ ・ ・ <INPUT type="button" value="購入する" onClick="chk8()"> ・ ・ ・ </BODY> </HTML>

  • CGIの中のjavascriptに関して

    教えて下さい。 下記のようなCGIファイルにjavascriptを記載しようと考えて いますが、どうしてもエラーとなってしまいます。 《エラー内容》 Network Error(tcp_error) *  《記載内容》 #!/usr/bin/perl <script type="text/javascript"> <!-- var url = "http://999.999.999.999/"; //ジャンプ先のURLを指定 var moveTime = 2000; //移動までの時間をミリ秒で指定 function jump(){ location.href = url; } setTimeout (jump, moveTime); //--> </script> print "Content-type: text/html\n\n"; print qq! <html> <head> <title>指定秒後に別のページへジャンプ</title> <META Http-Equiv="Content-Type" Content="text/html;charset=EUC-JP"> <body> <p><a href="index.html">index.html</a><p> </body> </html> !; 何か間違った記述の仕方をしているのでしょうか。。。 CGIファイルにjavascriptを記載する場合はどこへ記載すれば 良いでしょうか。。。。 教えて下さい。

  • JavaScriptからPerlへデータを送る方法について

    プログラミング初心者です。 HTMLで書いたフォームの中にあるテキストエリアのデータを、JavaScriptでデータを取り出して、それをPerlで受け取りたいのですが、方法に見当がつきません。 以下は書いてみたソースコードです。 HTMLファイル <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Form Test</title> <script type="text/javascript" src="JS/sample.js"></script> </head> <body> <form name=form1> <textarea name="comment" rows="3" cols="30">文字の入力</textarea> <input type="button" value="ボタン" onClick="Button()"> </form> </body> </html> JavaScriptファイル function Button(){ var comment = document.form1.comment.value; alert(comment); //値がとれてるか確認したかっただけです } Perlに関しては、#!/usr/bin/perl ぐらいしか、まだ分かりません。 よろしければ、JavaScriptからのデータ送信、Perlでのデータ受け取り方法を教えていただけないでしょうか。この質問に対して有効なサイトがあれば合わせて教えていただきたくおもいます。 よろしくお願いします。

  • Flash+javascriptでポップアップ

    Webデザイナーです。 同業者の方、Flash+javascriptにお詳しい方の回答お待ちしています。 業務でとある映画作品の公式サイトを制作しています。 topページ内に設置したFlashから、ボタンmcをクリックした時にgetURLでjavascriptの関数名を指定し、 ポップアップウインドウを開く処理をさせました。すると、IE6、7では全く問題なく動作するのですが、 なぜかFirefox2.x/3.xではポップアップが開いた先のウィンドウ上部に、ヘッダに記述した<title>タグ内の文字列が出現するという不可解な現象が起きてしまいました。 どなたか同じ様な現象に遭遇し、解決策をご存知の方はいらっしゃいませんでしょうか? 制作環境は windowsXP、FlashCS3、htmlはDreamweaverCS3で編集しています。 topページのヘッダ部分のソースは <head><title>○×劇場版</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="content-style-type" content="text/css" /> <meta name="keywords" content="○×○×"> <meta name="description" content="○×の原作による「○×○×劇場版」公式HP。○×年冬、感動の劇場公開!!"> <link href="./css/index.css" rel="stylesheet" type="text/css" media="screen,print" /> <script src="Scripts/swfobject_modified.js" type="text/javascript"></script> <script language="JavaScript"> <!-- function Openwin(){ myWin=window.open('./news.html', 'newWin','left=0,top=0,width=700,height=720,status=0,scrollbars=0,menubar=0,location=1,toolbar=0,resizable=1'); } //--> </script> </head> Flashからはボタンmcに on(release){ getURL("javascript:Openwin();"); } と記述、topページ内に配置し、クリックするとポップアップ(news.html)が開くという状態です。ポップアップは問題なく動作し、指定サイズのウィンドウが開くのですが、news.htmlの<title>タグ内の文字が ポップアップウインドウ内最上部に出現するという現象です。 news.htmlのヘッダは以下の通りです。 <head> <title>○×情報</title>【←この部分がポップアップ先ウインドウ内最上部にでてしまう】 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="content-style-type" content="text/css" /> <meta name="keywords" content="○×○×"> <meta name="description" content="○×の原作による「○×○×劇場版」公式HP。○×年冬、感動の劇場公開!!"> <link href="./css/news.css" rel="stylesheet" type="text/css" media="screen,print" /> </head> 自分でも試行錯誤を繰り返しましたが、どうにも解決できず… どうか、ご教授ねがいます。

  • ジャバスクリプトが作動しません。

    初めまして、素人なので的外れな質問だったら恐縮です。 以下のようにジャバスクリプトを2つ記述しましたが、後ろに記述した1つしか作動しません。 記述の順番を入れ替えても、やはり後ろに記述した方しか作動しません。 何が悪いのか、どなたか教えて頂けますでしょうか? <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>ホームページテンプレート</title> <meta name="description" content="説明を入れます" /> <meta name="keywords" content="キーワード" /> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/script.js"></script> <link href="css/gallery11.css" rel="stylesheet" type="text/css" media="screen" /> <script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/effects.js"></script> <script type="text/javascript" src="js/glider.js"></script> <script type="text/javascript"><!-- Event.observe(window, "load", function(){ new Glider("album1", { duration:1.0 } ); }); // --></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var setImg = '#viewer'; var fadeSpeed = 1500; var switchDelay = 5000; $(setImg).children('img').css({opacity:'0'}); $(setImg + ' img:first').stop().animate({opacity:'1',zIndex:'20'},fadeSpeed); setInterval(function(){ $(setImg + ' :first-child').animate({opacity:'0'},fadeSpeed).next('img').animate({opacity:'1'},fadeSpeed).end().appendTo(setImg); },switchDelay); }); </script> </head>

  • ModalBoxのIEでの表示について

    質問です。 javascriptの「ModalBox」についてなのですがModalBox内で指定したhtmlファイルがIE7では表示されません。Firefoxでは表示されるのですが・・・なぜでしょう? 一応javascriptは表示され上からウィンドウは表示されるのですが中身の内容がでてきません(Firefoxなら表示されます) ソースですが 表示するボタンがある側↓----------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>ModalBox サンプル</title> <meta http-equiv="Content-Style-Type" content="text/css" /> <link rel="stylesheet" href="modalbox.css" type="text/css" media="all"> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <script type="text/javascript" src="lib/prototype.js"></script> <script type="text/javascript" src="lib/scriptaculous.js"></script> <script type="text/javascript" src="modalbox.js"></script> </head> <body> <h1>ModalBoxサンプル</h1> <a href="sample.html" title="Sample 1" onclick="Modalbox.show(this.href, this.title); return false;">ダイアログを表示</a> </body> </html> --------------------------- 表示されるhtml側↓ <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Sample</title> </head> <body> サンプル </body> </html> ----------------------------- となっています。 調べたところIE7にも対応しているとの事なのですが何故でしょうか?

  • Perl CGI -入力フォーム-

    Perlを始めたばかりの初心者です。 Perlの中にフォームを入れたいのですが、エラーが出てしまいます。 現在は、ローカルで作動させています。 #! c:/perl/bin/perl print "Content-type: text/html\n\n"; print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n"; print "<head><title>TEST</title></head>\n"; print "<body>\n"; print "<p><input type="text" name="name"></p>\n"; print "</body>\n"; print "</html>"; 【print "<p><input type="text" name="name"></p>\n";】この記述がエラーの対象行となっています。 inputを使用する場合は他にも記述が必要なのでしょうか? 宜しくお願いします。

  • IEでエラー

    FireFoxだと問題ないのですが、IEだとエラーが出ます。 原因がわからないので、助けてください。 IEには次のようなエラーが出ます。 ライン:5 文字:1 エラー:構文エラーです コード:0 ソースコードは以下の通りです。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> 。。。。 以上、すみませんが、よろしくお願いします。

    • ベストアンサー
    • HTML
  • CGIにJAVAの記述をしたい

    CGIプログラムの中にJAVAの記述をしたいのですが うまくいきません。 ヒアドキュメントでくくってみましたが 500エラーで表示されませんでした。 どう記述すれば動いてくれるんでしょうか? print "Content-type: text/html\n\n"; print "<html><head>\n"; print "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n"; print "<link rel=\"stylesheet\" type=\"text/css\" href=\"$loaddir/style.css\">\n"; print "<title>$title</title>\n"; ここに下記のJAVA文を入れたいです。 print "</head>\n"; 記入したいJAVA <SCRIPT language="JavaScript"> <!-- document.write('<img src="momo/123.cgi?' + 'javaref=' + document.referrer + '" width=1 height=1>'); // --> </SCRIPT>

    • 締切済み
    • CGI