ハマった。
<a href="#" onclick="alert(''');">これはエラーになります。</a>
<a href="#" onclick="call_alert();">これは意図と違う結果になります。</a> <script type="text/javascript"><!-- function call_alert(){ alert('''); } //--></script>
<a href="#" onclick="alert('\'');">これはOKです。</a>
<a href="#" onclick="call_alert();">これもOKです。</a> <script type="text/javascript"><!-- function call_alert(){ alert('\''); } //--></script>
<a href="#" onclick="call_alert('hentai');">これは変態対応です。</a> <input type="hidden" name="hentai" value="'"> <script type="text/javascript"><!-- function call_alert(str){ var hentai_value = document.getElementsByName(str).item(0).value; alert(hentai_value); } //--></script>
ただ単にJavaScriptのメソッドの引数にシングルクォーテーション(')を渡したかっただけ。エスケープ(\')したくなかった。今は反省している。