[Top]

JavaScript実験室


[前] おしながき(3)

めも

まあ、一度知ってしまえば何てことないことなんですけど。 それに気付くまでかなりハマってしまうことを、自分のためここにメモしておきます。

  • <script language="JavaScript" src="./hoge.js"> を 使うときには、ファイル群の改行コードを揃えるべき。 元のHTMLファイルが \r\n なのにJSファイルが \n だったりすると 意味不明のエラーが出てものすごく悩むことになる。 ("return not in function" とか "}: syntax error" とか)
  • JavaScript内で変数に代入する文字列、この中に "</script>" が 入るときは要注意。たとえば以下:
    ×var a = '</script>';
    こんな感じにすると、ハマる。これは、たぶんブラウザが "</script>" を 見つけたところで「ああ、ここで JavaScript は終わりか」と判断してしまうことが 原因だと思う(つまり、文脈で判断してくれない)。これを防ぐためには、たとえば以下のように書くべき:
    var a = '<\/script>';
    ポイントとしては、とにかく "</script>" という文字列を JavaScriptのに埋め込まないこと。
  • Javascript を外部ファイルに独立させるとき。ファイルの文字コードの不一致に よる問題を回避するには
    <script type="text/javascript" charset="euc-jp" src="./hoge.js">
    こんな感じに、charset を指定してやればいいみたい。
  • document.write() は「現在位置」に情報を書き込む訳だけど、「現在位置」じゃない場所に document.write() と同等のことをしたいとき。そのときは appendChild/insertBefore などが使える‥はず (参考: [ document.write以外の記述方法を教えてくだ ] || [ 要素の追加 ] || [ jsファイルを指定したscriptタグを動的にDOMに追加する ] など)。以前そういうことを試したことが あったはずなんですけど、どこでどう試したか忘れてしまいました‥(^_^;