[ JavaScript ] クォーテーションがらみの構文エラーでハマった

久しぶりに簡単な JavaScript を書く機会があったんですが、クォーテーションの構文エラーでハマって悔しかったのでメモ。

構文エラーでハマった JavaScript コード

JavaScript の場合、ダブルクォーテーションの中でクォーテーションを使うには、シングルクォーテーションを使えば良かったよね? レベルの認識で以下の様な行を書いた。

document.write (“<a onclick="hoge("></a>“);

Internet Explorer 6 と 7 で確認してみると構文エラーが発生。 ちなみに Firefox 2 でエラーは出ませんでした。

※ 実際はもっと長いコードだったんですが、解り易くするため簡単なコードに書き換えています。

正しい JavaScript コード

結局、シングルクォーテーションの入れ子がおかしいのが原因でした。 書き直した正しい JavaScript コードは以下の通り。

document.write (“<a onclick="\&quot;hoge('fuga')\&quot;"></a>“);

ダブルクォーテーションの中で、ダブルクォーテーションを使う時はエスケープすると良いみたい。

原因を見つけるまでに小一時間かかったよ。 orz

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です