2017年7月13日木曜日

perl CGIで生成するHTMLファイル内のjavascriptの記述あるいは”バックスラッシュエスケープ”

Perl CGIの”print "Content-type: text/html; charset=UTF-8\n\n";”からHTMLファイルを生成し、その中で javascriptを動かそうとするときJSスクリプトの中にはいっている
「$」をPerlがフォームから受け取った変数の接頭辞と解釈してそれに続くスクリプトが処理できなくなる。
CGI をPerlで記述し、その中にjavascriptを直に書く場合は「$」の前に「バックスラッシュ」を入れてエスケープする。
今回は送信フォーム中の名前の欄で振り仮名を自動で書き込むjQuery構築のためだったが、Perl CGIで同的に生成するHTMLにjavascriptを記述する場合に共通することと思われる。


<tr><th colspan="2">名前</th>
<td>
<input type="text" id="userName" placeholder="お名前を入力" name="_name">
</td></tr>
<tr><th colspan="2">ふりがな</th>
<td>
<input type="text" id="userNameKana" placeholder="ふりがなを入力" name="furigana">


<script>\$(function(){\$.fn.autoKana('#userName','#userNameKana',{katakana:false});});</script>

0 件のコメント:

コメントを投稿