Cross Tip's
Maintained by
6/23 1998 Toshirou Takahashi

ケアレスミスをなくそう
およそプログラムを扱ったことのある人で、いわゆるケアレスミスをしたことの無い人はおそらく皆無でしょう。夜を徹してデバック(プログラムの間違い探し)をしたあげくに1個の不要な点(.)を発見する(笑)ということも案外少ないことではないのです。このようにピリオド(.)とカンマ(,)の打ち間違いやスペルミスなど落し穴はいくつも用意されています。ここではcrossテクニックに限らず、JavaScript、CSSなどを含めて質問の多かったケアレスミスをいくつか取り上げておきます。


1.大文字小文字に注意する

自分のパソコンの中では動くのに、なぜか、サーバーに置いたとたんに gifイメージがみつからなくなることがあります(実はこの質問がかなり多いのです^^;)。
  例.画像ファイル名がgifName.gifの時に...
  
    ローカル(あなたのパソコン)上で
    <img src="gifName.gif">
    <img src="gifName.GIF">
    <img src="gifName.giF">
    を読み込めたとしても
    
    サーバーに置くと
    <img src="gifName.GIF">
    <img src="gifName.giF">
    は読めません
    
これは、WinやMacのローカル上では大文字小文字を区別せずに使えることが多いのですが、プロバイダーのサーバーでは普通は大文字小文字が厳密に区別されているので、こういう結果になるというわけです。ちなみに、JavaScriptの命令についてはローカル上でも大文字小文字を区別して使います


2.z-indexの表記方法がCSSとJavaScriptで少し違う

CSSではz-index、JavaScriptではzIndexと書きます。
  例.CSS
  
    <style type="text/css">
      #test   { position:absolute;z-index:10 }
    </style>
    
  例.JavaScript
  
    <script language="JavaScript">
      if(document.layers)document.layers.test.zIndex=20
      if(document.all)   document.all.test.style.zIndex=20
    </script>



3.背景色のスペルミス

たとえば、数字の1と書いたつもりがl(小文字のL)やI(大文字のi)になっていたり、することがあります。たとえば、
  例.数字の1と小文字のLを間違える
  
    <script language="JavaScript">
      document.layers.test.bgColor='#11111l'
    </script>
    
「プロパティの値が不正です」といったエラーになってしまいます。



4.CSSの区切り記号

CSSの指定の:と;の打ち間違い。これも、初めのうちはかなりやってしまうミスです。
   #test { position:absolute;top:10;left:10 }
    
   #test { position:absolute:top:10;left:10 }



5.全角スペース

スクリプトの命令文の中に半角スペースのつもりで全角スペースを打ってしまっていることがあります。
  正 ;とaの間が半角スペース
  
      alert('test0'); alert('test1')
    
  誤 ;とaの間が全角スペース
  
      alert('test0'); alert('test1')
illegal character.といったエラーになります。


6.スクリプトの途中で改行

スクリプトの命令文の途中で改行すると正常に実行できません。たとえば、CD-ROMからコピーした時に自動改行されてしまっているのに気付かずにそのまま実行すると起こったりします。
  長いので改行されてしまった^^;;
  
      document.layers['test0'].document.layers
      ['test1'].document.layers['test2']



7.クォートとダブルクォート

スクリプトで文字列を表わす時はクォート(')やダブルクォート(")で囲んで表記します。クォート(')で囲んだ中にまた文字列を書きたい時はダブルクォート(")を、ダブルクォート(")で囲んだ中にまた文字列を書きたい時はクォート(')を使います。 更に、その中にも文字列があるときは頭に\\を付けます。
  

      document.write('test')
      document.write("test")
      document.write('<img src="test.gif")')
      document.write('<a href="x.htm" onClick="test(\\'test\\')")>a</A>')
      
  
      document.write('test")
      document.write('<img src='test.gif')')
      document.write('<a href="x.htm" onClick="test('test')")>a</A>')