上の例は次のように書きました。
<script type="text/javascript">
var s = prompt('お名前は?');
document.write('<p>こんにちは,' + s + 'さん!<\/p>');
</script>
ここで </p> を <\/p> としているのは,問題を起こすかもしれない文字列 </ が現れるのを防ぐためです。
上の例そのままでは,HTMLタグを入力された場合に問題が生じるかもしれません。
そのため,この例は実際には次のようになっています:
<script type="text/javascript">
var s = prompt('お名前は?');
document.write('<p>こんにちは,' + htmlentities(s) + 'さん!<\/p>');
</script>
この htmlentities() という関数は自前で次のように定義したものです:
function htmlentities(s) {
s = s.replace(/&/g, '&');
s = s.replace(/>/g, '>');
s = s.replace(/[<]/g, '<');
return s;
}
最後に余分な括弧が入っているのは </ という(問題を起こすかもしれない)文字列が現れるのを防ぐためです。
Last modified: 2012-04-18 09:59:06