• ベストアンサー

CGI.pmでHTMLのコメントタグを出力する関数はありますか?

CGI.pmでHTMLのコメントタグを出力する関数はありますか? 例えば次のような文字列を出力する関数はありますか。 <!--- document.write("abc".bold()) //---> 阿呆みたいな質問ですみません m(__)m

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

  • ベストアンサー
回答No.2

> ジャバスクリプトのメソッドは自分で書かないとダメなのでしょうか。 たぶん CGI.pm ではできません。 また、CGI.pm で javascriptを指定したいのなら、start_html で直接指定するのがよいでしょう。 use strict; use warnings; use CGI; use CGI::Carp qw(fatalsToBrowser); use CGI::Pretty; my $new_window_url = 'http://www.google.co.jp'; my $java_script = << "END_SCRIPT"; function open_new_window() { window.open('$new_window_url', 'New Window', 'width=300, height=300'); } END_SCRIPT my $q = CGI->new(); print $q->header( -charset => 'UTF-8' ), $q->start_html( -lang => 'ja', -script => { -language => 'javascript', -code => $java_script } ), $q->button( -name => 'Open New Window', -onclick => 'open_new_window()' ), $q->br, $q->a( { -href => $new_window_url, -onclick => 'javascript:open_new_window();return false' }, 'Open New Window' ), $q->end_html; javascriptを別ファイルにする場合は、 { -language => 'javascript', -src => './test.js' } とします。

zyousuke
質問者

お礼

こんにちは。 再返信ありがとうございます! やっぱりJavaScriptは自分で書くしかないですね。 JavaScriptをstart_htmlで指定したほうが良いのは何か理由があるのでしょうか。 XHTMLでは<script>内のコメントは全部無視される仕様になっているのを、ついさっき知りましたが、 これは決定打に欠けるかな。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

comment()

zyousuke
質問者

お礼

ご回答ありがとうございます。 comment関数を使ってコメントタグが出せました!! CGI.pmのcomment関数を使う場合、 <!--のあとにスペースが強制挿入され、 質問のような文字列(ハイフンを3個連続させる)は出せず、 <!-- -のようになってしまいました。 あと、 一難去ってまた一難なのですが、 ジャバスクリプトのメソッドは自分で書かないとダメなのでしょうか。 これについても教えてください。 できれば、CGI.pmの関数で統一したいのです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CGI.pmで'&'が'&amp;'に置き換わってしまう!

    文字「&」を出力したいのにCGI.pmが自動的に「&amp;」に変換してしまいます。 具体的には、 <a href="abc" accesskey="&">abc</a> のような文字列を出力させるために、 print($q->a({-href => 'abc', -accesskey => '&'}, 'abc')) というコードを実行したのですが、 出力される文字列は、 <a accesskey="&amp;" href="abc">abc</a> のように「&」が自動的に「&amp;」に置き換わってしまいます。 これの解決策として、オブジェクトを使用せずに、直接CGI.pmのメソッドを呼び出すと、なぜか変換されません。 すなわち、上のコードの「$q」の部分を「CGI」として、 print(CGI->a({-href => 'abc', -accesskey => '&'}, 'abc')) とします。 これは何か意味があるのでしょうか。それともただのバグ? 直接CGI.pmのメソッドを呼び出さなくても解決する方法はありますか。 accesskeyに関するご意見は、先日質問したこちらのスレへ頂けるとうれしいです。 http://oshiete1.goo.ne.jp/qa5707867.html

    • ベストアンサー
    • Perl
  • CGI.pmのcheckboxの-labelにHTMLタグを含んだ文字

    CGI.pmのcheckboxの-labelにHTMLタグを含んだ文字列を渡すことはできますか 具体的には、CGI.pmのcheckbox関数を使って次のような文字列を生成したいです <label><input type="checkbox" name="abc" value="xyz" accesskey="A" />abc(<span style="text-decoration: underline">A</span>)</label> 次のソースでうまくいくと思ったのですが、 $q->checkbox(-name => 'abc', -value => 'xyz', -accesskey => 'A', -label => 'abc(' . $q->span({-style => 'text-decoration: underline'}, 'A') . ')') 実際に返される文字列は、 <label><input type="checkbox" name="abc" value="xyz" accesskey="A" />abc(&lt;span style=&quot;text-decoration: underline&quot;&gt;A&lt;/span&gt;)</label> のように-labelに指定したHTMLタグが&○○;のようにエスケープされてしまいました・・・(T_T)

    • ベストアンサー
    • Perl
  • CGI.pmでHTMLのネームエンティティを出せるか

    CGI.pmでHTMLのネームエンティティを出力できるのでしょうか。 例えばescapeHTML()は'<'や'>'を'&lt;'や'&gt;'へ変換してくれますが、 半角スペースは'&nbsp;'へ変換してくれません。 半角スペースを使いたい場合、print('&nbsp;');のように書くしかないのでしょうか。 それともCGI.pmで何か専用の関数が用意されているのでしょうか。

    • ベストアンサー
    • Perl
  • CGI.pmで<s>タグは出せないのでしょうか。

    CGI.pmで<s>タグは出せないのでしょうか。 同じような質問で恐縮です。 HTMLでは、取消線のための、 <s>と<strike>という全く同じ意味の2個のタグがありますが、 これをCGI.pmの関数で出力しようとすると <strike>は出せるのですが、<s>はどうやって出すのでしょうか。 CGI.pmでは<strike>に統一されて、<s>のための関数はサポートされていないのでしょうか。 それとも<s>なんてタグは既に廃止されて、今では存在しないのか???

    • ベストアンサー
    • Perl
  • CGI出力のHTMLに携帯から投稿すると文字化けする

    掲示板の書き込み時にCGI出力でないHTML(HTMLファイル)からだと問題なく投稿できるのですがCGI出力のHTMLから投稿すると文字化けしてしまいます。ちなみにCGI出力のHTMLのソースをコピーしてHTMLファイルにしたので前者と後者の中身はまったく同じです。 なぜでしょうか・・・?ちなみに投稿した携帯はauです。

    • 締切済み
    • CGI
  • リロードせずにHTMLタグ出力(innerHTML以外の方法で)

    初めまして。 下記の条件で、HTMLをリロードせずにHTMLタグを出力する方法をご存知の方がいらっしゃれば、教えていただけないでしょうか。簡単に言うと、innerHTMLのようにHTMLをリロードせずに動的に出力する方法が知りたいのです。(innerHTMLはこちらの事情で使えません) ・IE6限定でよい ・JavaScript,CSS,DOMはOK ・DynamicHTMLはNG(innerHTML等) ・一度HTMLを読み込んだ後、動的にHTMLタグを出力する ・出力する文字列の中にタグがあり、これが有効になるようにしたい (例:たとえば、動的にHTNLタグである<b>hogehoge</b>とかを出力して、ブラウザ上にはhogehogeという文字列が太文字で表示されるようにしたいのです) ※試してみたがだめだった方法 1.document.write()による出力 ⇒これをするとページがリロードされてしまうので条件にあわず 2.getElementById('hoge')で、<div id='hoge'>&nbsp;</div>のnodeValueに文字列を代入して出力 ⇒これをしても、HTMLタグではなく文字列としてHTMLタグが出力される。 よろしくお願いします!

  • 変数をHTML内で表記する方法

    .jsファイル内で定義した変数をHTML内で表記するためにはどうすればいいでしょうか? 例えば、test.js内に function test{ var abc = "こんにちは"; } という関数があったとするとこの関数内にあるabcを動的にHTMLに表示させるためにはどうすればいいでしょうか HTMLでないと駄目なのでdocument.write等は使用出来ません。 よろしくお願い致します。

  • CGI→HTML テキストボックスへの自動入力

    お世話になります。 CGIで出力したWEBの画面から純粋なHTML画面へ遷移した際、同時にHTML側のテキストボックスへ文字列を入力したいと考えておりますが可能でしょうか? ※意味がわかり辛い場合などは、補足説明します。 よろしくお願いいたします。

    • 締切済み
    • CGI
  • HTMLについて

    HTMLについて分からない事がありますので、ご教授願います。 <INPUT TYPE=TEXT NAME=TEST VALUE="abc"def"> 上記のように、テキストボックスに「abc"edf」を初期表示させる1文を書きました。 しかし、「abc」しかテキストボックスには初期表示されません。 原因は「abc」の次にある「"」がVALUEに代入する文字列の最後とみなされている ためなのですが、文字列中の「"」を文字として認識させて「abc"def」と初期表示 させたいのですが、何か良い方法はないでしょうか? 実は、powerscriptでプログラミングをしています。 そのため、VALUEに指定する文字列は変数を指定していますので、 「VALUE=''」にしてもその変数に「'」が入力されていたら同じ現象が生じてしまいます。 なんとか、「"」を文字として認識させる方法はないのでしょうか?

  • CGI.pmでかけないタグってありますか?

    質問タイトルのとおりなのですが、 CGI.pmで書けないHTMLタグってありますでしょうか? 一覧などがあればURLを教えてください。 また、<div id="name"> や<div class="name"> は、どうやって書くのでしょうか? バージョンによっては、 スタイルシートを読んだりする 論理的な意味しかないタグはサポートしていないんでしょうか。

    • ベストアンサー
    • Perl