JavaScript文字列の動的生成におけるエスケープ
「JavaScript文字列を動的生成する」と一言で言っても、例えば
<html>... <script> // HTML内のscript要素内に生成 var s = "ここに動的生成される"; </script>
だったり、
<div onclick='foo("ここに動的生成される");'>
だったり、
<script src="external.js"></script>
// external.js var s = "ここに動的生成される";
だったり、さらに複雑な組み合わせだったりといろんな状況があって、基本的には「JavaScriptとしてのエスケープ」に加えてその外側の(場合によってはネストしている)コンテキストに応じたエスケープが必要、という話。
で、面倒だったら
var s = decodeURIComponent( "ここに動的生成される" );
にして、生成する側はURLエンコードしとけばだいたい大丈夫!知らんけど!